我对Service Workers and Promises有点新意,我想知道如何在发布唤醒锁之前检查SW是否真的在等待我希望它执行的(链)动作。
例如:
var count = 0;
self.addEventListener("message", function(event) {
count = 0;
event.waitUntil(work());
});
function work() {
console.log("work()");
return new Promise(function(resolve, reject) {
waitSome()
.then(function(){
if (count<30) {
console.log(" -> Waiting: "+ count);
return work();
} else {
console.log(" -> Done: "+ count);
resolve();
}
});
});
}
function waitSome() {
return new Promise(function(resolve, reject) {
count++;
setTimeout(function() { resolve(); }, 1000);
});
}
在这种情况下,它很容易调试但我必须保持我的开发工具打开 - 在这种情况下SW保持活着(或者至少不太可能被杀死?)
此外,这段代码非常简单,如果它更复杂的话呢?你怎么能确保SW等待它需要的时间?
你如何检查它是否不能保持唤醒锁的时间超过必要的时间?
更新:修改后的代码段,以便实际运行:)