Ach*_*him 3 javascript service-worker progressive-web-apps
在我的ServiceWorker我有以下代码:
function send_alert() {
console.log('alert');
};
self.addEventListener('message', (evt) => {
console.log("message:" + evt.data);
self.setTimeout(1000*5, send_alert);
console.log("done");
});
Run Code Online (Sandbox Code Playgroud)
如果单击主页中的按钮,则会向工作人员发送一条消息。这工作正常,我在控制台中看到message: ...和done日志。该self.setTimeout调用不会引发错误,但从send_alert未被调用。
根据https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope实现的WindowTimers实现setTimeout。self应该是 的一个实例ServiceWorkerGlobalScope,所以我没有看到问题。setTimeout在服务工作者中使用的正确方法是什么?
假设self.setTimeout函数是普通setTimeout函数,那么参数的顺序是错误的:你首先必须提供回调,然后是毫秒数。
不幸的是,这与当今 JavaScript 中被视为事实上的标准背道而驰,但setTimeout已经很老了,所以......历史原因
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |