DedicatedWorkerGlobalScope: messageerror 事件

基线 2023

新可用

2023 年 3 月起,此功能可在最新的设备和浏览器版本中使用。此功能可能无法在较旧的设备或浏览器中使用。

注意:此功能仅在 专用 Web Workers 中可用。

DedicatedWorkerGlobalScope 对象接收到无法反序列化的消息时,会触发 messageerror 事件。

此事件不可取消,也不冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("messageerror", (event) => {});

onmessageerror = (event) => {};

事件类型

事件属性

此接口也继承其父级 Event 的属性。

MessageEvent.data 只读

消息发射器发送的数据。

MessageEvent.origin 只读

表示消息发射器来源的字符串。

MessageEvent.lastEventId 只读

表示事件唯一 ID 的字符串。

MessageEvent.source 只读

一个 MessageEventSource(可以是 WindowProxyMessagePortServiceWorker 对象),表示消息发射器。

MessageEvent.ports 只读

一个 MessagePort 对象数组,表示与消息正在通过的通道关联的端口(在适当的情况下,例如在通道消息传递中或向共享工作线程发送消息时)。

示例

使用 addEventListener() 侦听 messageerror

js
// worker.js

self.addEventListener("messageerror", (event) => {
  self.postMessage("Error receiving message");
  console.error(event);
});

相同,但使用 onmessageerror 事件处理程序属性

js
// worker.js

self.onmessageerror = (event) => {
  self.postMessage("Error receiving message");
  console.error(event);
};

规范

规范
HTML 标准
# event-messageerror
HTML 标准
# handler-dedicatedworkerglobalscope-onmessageerror

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅