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 |
瀏覽器相容性
載入中…