navigator.serviceWorker.controller является нулевым после успешной регистрации - PullRequest
0 голосов
/ 12 декабря 2018
navigator.serviceWorker.register('service-worker.js').then(worker =>{
    console.log('controller', navigator.serviceWorker.controller)
    console.log('worker ->', worker)
})

Затем я запускаю интервал, и он печатает waiting... навсегда, означая, что он все еще null.

var tt = setInterval(()=>{
    if (navigator.serviceWorker.controller) {
        console.log('Controller found')
        navigator.serviceWorker.controller.postMessage("ping")
        clearInterval(tt)
    }
    else {
        console.log('waiting...')
    }
}, 2000)

Что я делаю не так?Сервисный работник, очевидно, активен, я даже могу отправлять push-сообщения, используя их, и они принимаются.

Firefox 64, Linux

Обновление: это происходит не все 100% раз, когда я открываю страницу(или переустановить рабочий), возможно, примерно в 30% случаев.

...