SyncManager:register() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

备注: 此特性在 Web Worker 中可用。

SyncManager 接口的 register() 方法用于注册同步事件,一旦网络连接可用,就会在关联的 Service Worker 内触发 sync 事件。

语法

js
register(tag)

参数

tag

同步事件的标识符。SyncEvent 的 tag 属性的值,它被传递到 Service Worker 的 sync 事件处理器中。

返回值

一个兑现为 undefinedPromise

异常

InvalidStateError DOMException

如果当前的 Service Worker 不是活动状态,则抛出该错误。

NotAllowedError DOMException

如果用户禁用了后台同步功能,则抛出该错误。

示例

以下异步函数在浏览器的上下文注册后台同步任务:

js
async function syncMessagesLater() {
  const registration = await navigator.serviceWorker.ready;
  try {
    await registration.sync.register("sync-messages");
  } catch {
    console.log("Background Sync 无法被注册!");
  }
}

规范

Specification
Web Background Synchronization
# dom-syncmanager-register

浏览器兼容性

BCD tables only load in the browser