Worker:messageerror 事件
当 Worker
对象接收到一条无法被反序列化的消息时,将在该对象上触发 messageerror
事件。
此事件不能取消,也不会冒泡。
语法
在如 addEventListener()
等方法中使用事件名称,或者设置事件处理器属性。
js
addEventListener("messageerror", (event) => {});
onmessageerror = (event) => {};
事件类型
MessageEvent
。继承自 Event
。
事件属性
此接口也从其父接口 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}`);
};
规范
Specification |
---|
HTML Standard # event-messageerror |
浏览器兼容性
BCD tables only load in the browser