files/en-us/web/api/scheduler/index.md
{{APIRef("Prioritized Task Scheduling API")}}{{AvailableInWorkers}}
The Scheduler interface of the Prioritized Task Scheduling API provides methods for scheduling prioritized tasks.
A Scheduler can be accessed from the global object using {{domxref("Window.scheduler")}} or {{domxref("WorkerGlobalScope.scheduler")}} within a worker.
None.
If the feature is defined, an instance of this object is returned by the {{jsxref("globalThis")}} property in both workers and the main thread.
The code below shows a simple task that resolves with the text 'Task executing'.
This text is logged on success.
The code also shows a catch block, which would be required in more complex code to handle when a task is aborted or throws an error.
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
}
For more comprehensive example code see Prioritized Task Scheduling API > Examples.
{{Specifications}}
{{Compat}}