调度器

可用性有限

此功能并非基本功能,因为它在一些最广泛使用的浏览器中不起作用。

Scheduler 接口是 优先级任务调度 API 的一部分,它提供了 Scheduler.postTask() 方法,该方法可用于添加优先级任务以供调度。

可以从全局对象 WindowWorkerGlobalScope (this.scheduler) 访问 Scheduler

实例属性

无。

实例方法

Scheduler.postTask()

将任务作为回调添加到调度器,可以选择指定优先级、延迟和/或用于中止任务的信号。

示例

如果定义了该功能,则在工作线程和主线程中,全局 this 都会返回此对象的实例。该接口的唯一属性是 postTask() 方法,该方法用于发布任务并返回一个 promise。

以下代码展示了一个简单的任务,它以文本“任务正在执行”解析。成功时会记录此文本。代码还展示了一个 catch 块,这在更复杂的代码中是必需的,用于处理任务中止或抛出错误的情况。

js
if ("scheduler" in this) {
  // Post task with default priority: 'user-visible' (no other options)
  // When the task resolves, Promise.then() logs the result.
  scheduler
    .postTask(() => "Task executing")
    .then((taskResult) => console.log(`${taskResult}`)) // Log result
    .catch((error) => console.error(`Error: ${error}`)); // Log errors
}

有关更全面的示例代码,请参见 优先级任务调度 API > 示例

规范

规范
优先级任务调度
# 调度器

浏览器兼容性

BCD 表格仅在浏览器中加载