要捕获由Service Worker消息事件抛出的异常,可以在触发消息事件的页面中使用try-catch语句来包装消息发送方法(postMessage)。在try块中执行消息发送方法,并在catch块中处理异常。
以下是代码示例:
// 在主页面中发送消息 if ('serviceWorker' in navigator) { navigator.serviceWorker.ready.then((registration) => { const worker = registration.active; worker.postMessage('Hello from the main page'); }).catch((err) => { console.error('Error during service worker registration:', err); }); }
// 在Service Worker中接收消息
self.addEventListener('message', (event) => {
try {
console.log(Message received: ${event.data}
);
} catch (err) {
console.error('Error handling message:', err);
}
});