ServiceWorkerContainer.ready

readyServiceWorkerContainer インターフェイスの読み取り専用プロパティは、サービスワーカーがアクティブになるまでコードの実行を遅らせる方法を提供します。 決して拒否しない Promise を返し、現在のページに関連する ServiceWorkerRegistration がアクティブ(active)ワーカーを持つまで無期限に待機します。 その条件が満たされると、ServiceWorkerRegistration で解決されます。

Promise で、決して拒否されず、最終的には ServiceWorkerRegistration で解決される可能性があります。

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.ready
  .then((registration) => {
    console.log('サービスワーカーがアクティブ:', registration.active);

    // この時点で、registration.pushManager.subscribe() などの
    // アクティブなサービスワーカーを必要とするメソッドを呼び出すことができます
  });
} else {
  console.error('サービスワーカーをサポートしていません。');
}

仕様書

Specification
Service Workers
# navigator-service-worker-ready

ブラウザーの互換性

BCD tables only load in the browser