SyncManager:register() 方法

有限可用性

此功能不是基线,因为它在一些最常用的浏览器中不起作用。

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

register() 方法是 SyncManager 接口的方法,它注册一个同步事件,并在网络连接可用时立即在关联的服务工作者中触发 sync 事件。

语法

js
register(tag)

参数

tag

此同步事件的标识符。这将是传递到服务工作者 sync 事件处理程序的 SyncEventtag 属性的值。

返回值

一个 Promise,它解析为 undefined

异常

InvalidStateError DOMException

如果当前服务工作者未处于活动状态,则抛出此异常。

NotAllowedError DOMException

如果用户已禁用后台同步,则抛出此异常。

示例

以下异步函数从浏览上下文注册后台同步

js
async function syncMessagesLater() {
  const registration = await navigator.serviceWorker.ready;
  try {
    await registration.sync.register("sync-messages");
  } catch {
    console.log("Background Sync could not be registered!");
  }
}

规范

规范
Web 后台同步
# dom-syncmanager-register

浏览器兼容性

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