此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

ServiceWorkerRegistration.unregister()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2018年4月⁩.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

ServiceWorkerRegistration 接口的 unregister 方法用于取消对 service worker 的注册并返回一个 Promise。没有找到注册时,这个 promise 返回 false,否则,不论取消成功与否都返回 true (当其他人在同一作用域调用了 ServiceWorkerContainer.register 可能取消失败)service worker 会在取消注册前完成一切正在进行的操作。

备注: 这一特性同样适用于 Web Worker

语法

js
unregister()

参数

无。

返回值

Promise,会兑现一个表示 service worker 是否被取消注册的布尔值。

示例

下面的简单例子中注册了一个 service worker,然后立即取消了:

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js", { scope: "/" })
    .then((registration) => {
      // 注册成功
      console.log("Registration succeeded.");
      registration.unregister().then((boolean) => {
        // 如果 boolean = true,取消注册成功
      });
    })
    .catch((error) => {
      // 注册失败
      console.error(`Registration failed with ${error}`);
    });
}

规范

Specification
Service Workers
# navigator-service-worker-unregister

浏览器兼容性

参见