此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Worker:messageerror 事件

有限可用

此特性不属于基线,因为它尚未在主流浏览器中得到支持。

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

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

语法

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

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

onmessageerror = (event) => {};

事件类型

MessageEvent。继承自 Event。

Event MessageEvent

事件属性

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

MessageEvent.data 只读

消息发送者发送的数据。

MessageEvent.origin 只读

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

MessageEvent.lastEventId 只读

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

MessageEvent.source 只读

一个 MessageEventSource(可以是一个 WindowProxy、MessagePort 或 ServiceWorker 对象),代表消息发送者。

MessageEvent.ports 只读

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

示例

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

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

浏览器兼容性

参见