I have the following code, but my result is a pending promise instead of a response?
if ('serviceWorker' in navigator && 'PushManager' in window) {
console.log('Service Worker and Push is supported');
const asyncServiceWorker = Meteor.wrapAsync(navigator.serviceWorker.register, navigator.serviceWorker, navigator);
try {
let result = asyncServiceWorker('sw.js');
console.log('Service Worker is registered', result);
}
catch(error){
console.error('Service Worker Error', error);
}
}
If I just use the regular code, then .then
never runs:
if ('serviceWorker' in navigator && 'PushManager' in window) {
console.log('Service Worker and Push is supported');
navigator.serviceWorker.register('sw.js')
.then(function(swReg) {
console.log('Service Worker is registered', swReg);
swRegistration = swReg;
})
.catch(function(error) {
console.error('Service Worker Error', error);
});
} else {
console.warn('Push messaging is not supported');
}