ServiceWorkerContainer.ready

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

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

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

js
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