Worker:messageerror 事件

Worker 对象接收到一条无法被反序列化的消息时,将在该对象上触发 messageerror 事件。

此事件不能取消,也不会冒泡。

语法

在如 addEventListener() 等方法中使用事件名称,或者设置事件处理器属性。

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

onmessageerror = (event) => {};

事件类型

事件属性

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

MessageEvent.data 只读

消息发送者发送的数据。

MessageEvent.origin 只读

一个字符串,代表消息发送者的来源。

MessageEvent.lastEventId 只读

一个字符串,代表事件的唯一 ID。

MessageEvent.source 只读

一个 MessageEventSource(可以是一个 WindowProxyMessagePortServiceWorker 对象),代表消息发送者。

MessageEvent.ports 只读

一个 MessagePort 对象的数组,代表与消息被发送的通道相关的端口(在适当的情况下,例如在通道消息传递或向 shared worker 发送消息时)。

示例

创建一个 worker,使用 addEventListener() 监听 messagemessageerror 事件:

js
// main.js

const worker = new Worker("static/scripts/worker.js");

worker.addEventListener("message", (event) => {
  console.error(`Received message from worker: ${event}`);
});

worker.addEventListener("messageerror", (event) => {
  console.error(`Error receiving message from worker: ${event}`);
});

同样,可以使用 onmessageerror 事件处理器属性监听事件:

js
// main.js

const worker = new Worker("static/scripts/worker.js");

worker.onmessage = (event) => {
  console.error(`Received message from worker: ${event}`);
};

worker.onmessageerror = (event) => {
  console.error(`Error receiving message from worker: ${event}`);
};

规范

Specification
HTML Standard
# event-messageerror

浏览器兼容性

BCD tables only load in the browser

参见