Back to Content

Window: scheduler property

files/en-us/web/api/window/scheduler/index.md

latest1.7 KB
Original Source

{{APIRef("Prioritized Task Scheduling API")}}

The scheduler read-only property of the {{domxref("Window")}} interface is the entry point for using the Prioritized Task Scheduling API.

It returns a {{domxref("Scheduler")}} object instance containing {{domxref('Scheduler.postTask', 'postTask()')}} and {{domxref('Scheduler.yield()', 'yield()')}} methods that can be used to schedule prioritized tasks.

Value

A {{domxref("Scheduler")}}.

Examples

The code below shows a very basic use of the property and its associated interface. It demonstrates how to check that the property exists and then posts a task that returns a promise.

js
// Check if the prioritized task API is supported
if ("scheduler" in window) {
  // Callback function - "the task"
  const myTask = () => "Task 1: user-visible";

  // Post task with default priority: 'user-visible' (no other options)
  // When the task resolves, Promise.then() logs the result.
  window.scheduler
    .postTask(myTask)
    // Handle resolved value
    .then((taskResult) => console.log(`${taskResult}`))
    // Handle error or abort
    .catch((error) => console.log(`Error: ${error}`));
} else {
  console.log("Feature: NOT Supported");
}

For comprehensive example code showing to use the API see Prioritized Task Scheduling API > Examples.

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also

  • Prioritized Task Scheduling API
  • {{domxref('Scheduler.postTask()')}}
  • {{domxref('Scheduler.yield()')}}
  • {{domxref('TaskController')}}
  • {{domxref("WorkerGlobalScope.scheduler")}}