Scheduler
注意:此功能在 Web Workers 中可用。
Scheduler 接口属于优先级任务调度 API,它提供了调度优先级任务的方法。
可以通过全局对象中的 Window.scheduler 或 worker 中的 WorkerGlobalScope.scheduler 来访问 Scheduler。
实例属性
无。
实例方法
Scheduler.postTask()-
以回调函数的形式将任务添加到调度器中,可选择指定优先级、延迟时间,以及用于中止任务的信号。
Scheduler.yield()-
将主线程的控制权交还给浏览器,并返回一个 promise,该 promise 在恢复执行时会 resolve。
示例
如果该功能已定义,则在 worker 和主线程中,globalThis 属性都会返回此对象的一个实例。
下面的代码展示了一个简单的任务,它会 resolve 文本“Task executing”。成功时会记录此文本。代码还展示了一个 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 > 示例。
规范
| 规范 |
|---|
| 优先任务调度 # scheduler |
浏览器兼容性
加载中…