TaskController: setPriority() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die setPriority()
-Methode der TaskController
-Schnittstelle kann aufgerufen werden, um eine neue Priorität für das Signal dieses Controllers zu setzen.
Wenn eine priorisierte Aufgabe konfiguriert ist, um das Signal zu verwenden, wird dadurch auch die Aufgabenpriorität geändert.
Beobachter werden über Prioritätsänderungen durch das Auslösen eines prioritychange
-Ereignisses benachrichtigt.
Die Methode benachrichtigt nur, wenn die Priorität tatsächlich geändert wird (das Ereignis wird nicht ausgelöst, wenn die Priorität durch den Aufruf nicht geändert würde).
Beachten Sie, dass die Aufgabenpriorität nur für Aufgaben mit veränderbaren Prioritäten geändert werden kann. Wenn die Aufgabe unveränderbar ist, wird der Funktionsaufruf ignoriert.
Syntax
setPriority(priority)
Parameter
priority
-
Die Priorität der Aufgabe. Eine der folgenden:
"user-blocking"
,"user-visible"
,"background"
.
Rückgabewert
Keiner (undefined
).
Ausnahmen
NotAllowedError
DOMException
-
Eine Prioritätsänderung wurde gestartet, während bereits eine läuft.
Beispiele
Zuerst erstellen wir einen Task-Controller.
In diesem Fall geben wir keine Priorität an, also wird user-visible
als Standard verwendet.
// Create a TaskController with default priority: 'user-visible'
const controller = new TaskController();
Dann übergeben wir das Signal des Controllers an die Scheduler.postTask()
-Methode.
// Post task passing the controller's signal.
// The signal priority sets the initial priority of the task
scheduler
.postTask(() => "Task execute", { signal: controller.signal })
.then((taskResult) => {
console.log(`${taskResult}`);
}) // Run on success)
.catch((error) => {
console.log(`Catch error: ${error}`);
}); // Run on fail
Der Controller kann dann verwendet werden, um die Priorität zu ändern.
// Change the priority to 'background' using the controller
controller.setPriority("background");
Zusätzliche Beispiele, einschließlich wie das Ereignis, das sich aus einer Prioritätsänderung ergibt, behandelt werden kann, finden Sie hier: Prioritized Task Scheduling API > Beispiele.
Spezifikationen
Specification |
---|
Prioritized Task Scheduling # dom-taskcontroller-setpriority |