ServiceWorkerContainer:ready 属性

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在一些或所有 支持的浏览器 中可用。

注意:此功能在 Web Workers 中可用。

ready 属性是 ServiceWorkerContainer 接口的只读属性,它提供了一种方法,可以在服务工作者处于活动状态之前延迟代码执行。它返回一个 Promise,该 Promise 永远不会被拒绝,并且会无限期地等待,直到与当前页面关联的 ServiceWorkerRegistration 拥有一个 active 工作者。一旦满足该条件,它将解析为 ServiceWorkerRegistration

一个 Promise,它永远不会被拒绝,并且最终可能会解析为一个 ServiceWorkerRegistration

示例

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker.ready.then((registration) => {
    console.log(`A service worker is active: ${registration.active}`);

    // At this point, you can call methods that require an active
    // service worker, like registration.pushManager.subscribe()
  });
} else {
  console.error("Service workers are not supported.");
}

规范

规范
Service Workers
# navigator-service-worker-ready

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。