Worker: messageerror 事件

注意: 此功能在 Web Workers 中可用,但 Service Workers 除外。

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

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

语法

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

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

onmessageerror = (event) => {};

事件类型

事件属性

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

MessageEvent.data 只读

消息发射器发送的数据。

MessageEvent.origin 只读

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

MessageEvent.lastEventId 只读

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

MessageEvent.source 只读

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

MessageEvent.ports 只读

一个 MessagePort 对象数组,表示消息正在通过的通道关联的端口(在适当的情况下,例如在通道消息传递或向共享 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}`);
};

规范

规范
HTML 标准
# event-messageerror

浏览器兼容性

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

参见