Wait for ServiceWorker to complete registering before subscribing Wait for ServiceWorker to complete registering before subscribing google-chrome google-chrome

Wait for ServiceWorker to complete registering before subscribing


You can use ServiceWorkerContainer.ready.

Example from MDN:

function subscribe() {  var subscribeButton = document.querySelector('.js-subscribe-button');  subscribeButton.disabled = false;  navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {    serviceWorkerRegistration.pushManager.subscribe()      .then(function(subscription) {        // The subscription was successful        subscribeButton.disabled = true;        return sendSubscriptionToServer(subscription);      })      .catch(function(error) {        if (Notification.permission === 'denied') {          console.log('Permission for Notifications was denied');          subscribeButton.disabled = true;        } else {          console.log('Unable to subscribe to push.', error);          subscribeButton.disabled = false;        }      });  });}