0

根据规范,该ServiceWorker.waiting属性返回对已安装并等待激活的服务工作者的引用。

这可以。但是我如何知道等待的 service worker 何时转换到一个新的状态呢?

返回的服务工作者ServiceWorker.waiting似乎没有任何通知状态更改的必要事件:

if (registration.waiting) {

  registration.waiting.postMessage('skip-waiting');

  // This is failing because ready is undefined.
  registration.waiting.ready.then(function () {

    console.log('new service worker - ready');
 }
}
4

1 回答 1

0

在撰写本文时,registration.waiting.onstatechangeChrome 中为 null。但是,以下工作:

if (registration.waiting) {

  const waiting = registration.waiting;

  waiting.postMessage('skip-waiting');

  waiting.addEventListener('statechange', function (e) {

    if(waiting.state === 'activated') {
      console.log('new service worker - ready');
    }
 }
}
于 2018-11-05T10:08:27.497 回答