ServiceWorkerRegistration: unregister() 方法

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有浏览器中可用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

ServiceWorkerRegistration 接口的 unregister() 方法会注销 Service Worker 注册并返回一个 Promise。如果未找到注册,Promise 将解析为 false;否则,无论注销是否成功(如果其他人刚刚使用相同的范围调用了 ServiceWorkerContainer.register(),则可能不会注销),它都会解析为 true。Service Worker 将在注销前完成所有正在进行的事务。

语法

js
unregister()

参数

无。

返回值

Promise 解析为一个布尔值,指示 Service Worker 是否已注销。

示例

以下简单示例注册了一个 Service Worker 示例,但随后立即将其注销

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js", { scope: "/" })
    .then((registration) => {
      // registration worked
      console.log("Registration succeeded.");
      registration.unregister().then((boolean) => {
        // if boolean = true, unregister is successful
      });
    })
    .catch((error) => {
      // registration failed
      console.error(`Registration failed with ${error}`);
    });
}

规范

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

浏览器兼容性

另见