Worker: messageerror 事件
注意:此功能在 Web Workers 中可用,但 Service Workers 除外。
当 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
对象数组,表示消息发送通道(如果适用,例如在通道消息传递或向共享工作者发送消息时)关联的端口。
示例
使用 addEventListener()
创建一个 worker,并监听 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 |
浏览器兼容性
加载中…
另见
Worker.postMessage()
- 相关事件:
message