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

js
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.

js
// Create a TaskController with default priority: 'user-visible'
const controller = new TaskController();

Dann übergeben wir das Signal des Controllers an die Scheduler.postTask()-Methode.

js
// 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.

js
// 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

Browser-Kompatibilität