Я звоню messaging.getToken (), но Обещание никогда не разрешается.
let msging
const msgTokenPromise = navigator.serviceWorker.register('/sw.js')
.then(reg => {
if(firebase.messaging.isSupported()) {
msging = firebase.messaging()
// msging.onTokenRefresh = msging.onTokenRefresh.bind(msging)
msging.useServiceWorker(reg)
return msging.requestPermission()
} else throw "messaging not supported"
})
.then (() => {let prom = msging.getToken();
console.log("tokenProm", prom);
return prom
})
.catch(err => console.log('permission error', err))
const msgToken$ =
concat( from(msgTokenPromise)
, defer(() => Observable.create(msging.onTokenRefresh).pipe(switchMap(() => from(msging.getToken()))))
)
msgToken$.subscribe(currToken => {console.log('currToken', currToken)}
Я получаю журнал tokeProm как ожидающее обещание в консоли, но никогда не регистрирую токен.Не могу найти решение этой проблемы и не могу найти ошибку.Я использую с rxjs.
ОБНОВЛЕНИЕ: Когда я очищаю кеш и работника сервиса и перезагружаю его теперь разрешается.Поэтому мой вопрос звучит так: что может привести к тому, что вызов getToken () не разрешится?