This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is only available in Web Workers.
The scheduler read-only property of the WorkerGlobalScope interface is the entry point for using the Prioritized Task Scheduling API.
It returns a Scheduler object instance containing postTask() and yield() methods that can be used to schedule prioritized tasks.
A Scheduler.
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.
// Check if the prioritized task API is supported
if ("scheduler" in self) {
// 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.
self.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.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
scheduler |
94 | 94 | 142 | 80 | No | 94 | 142 | 66 | No | 17.0 | 94 | No |
Scheduler.postTask()Scheduler.yield()TaskControllerWindow.scheduler
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/scheduler