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 des TaskController
-Interfaces kann aufgerufen werden, um eine neue Priorität für das signal
dieses Controllers festzulegen. Wenn eine priorisierte Aufgabe so konfiguriert ist, dass sie das Signal verwendet, wird dies auch die Priorität der Aufgabe ändern.
Beobachter werden über Prioritätsänderungen benachrichtigt, indem ein prioritychange
-Event ausgelöst wird. Die Methode benachrichtigt nur, wenn die Priorität tatsächlich geändert wird (das Ereignis wird nicht ausgelöst, wenn der Aufruf die Priorität nicht ändern würde).
Beachten Sie, dass die Aufgabenpriorität nur für Aufgaben mit veränderlichen Prioritäten geändert werden kann. Wenn die Aufgabe unveränderlich 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, sodass sie standardmäßig user-visible
ist.
// 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");
Weitere Beispiele, die zeigen, wie das Ereignis behandelt wird, das sich aus der Änderung der Priorität ergibt, finden Sie unter: Prioritized Task Scheduling API > Beispiele.
Spezifikationen
Specification |
---|
Prioritized Task Scheduling # dom-taskcontroller-setpriority |
Browser-Kompatibilität
BCD tables only load in the browser