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

瀏覽器相容性