TaskController: setPriority()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

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

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, sodass sie standardmäßig user-visible ist.

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");

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