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 April 2018.
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 |
浏览器兼容性
BCD tables only load in the browser