Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WorkerGlobalScope: queueMicrotask()-Methode

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2020 browserübergreifend verfügbar.

Hinweis: Diese Funktion ist nur in Web Workers verfügbar.

Die Methode queueMicrotask() der Schnittstelle WorkerGlobalScope reiht eine Microtask ein, die zu einem sicheren Zeitpunkt ausgeführt wird, bevor die Kontrolle an die Event-Loop des Browsers zurückgegeben wird.

Die Microtask ist eine kurze Funktion, die ausgeführt wird, nachdem die aktuelle Task ihre Arbeit abgeschlossen hat und kein weiterer Code mehr darauf wartet, ausgeführt zu werden, bevor die Kontrolle über den Ausführungskontext an die Event-Loop des Browsers zurückgegeben wird.

So kann Ihr Code ausgeführt werden, ohne anderen ausstehenden Code mit möglicherweise höherer Priorität zu beeinträchtigen, aber noch bevor der Browser die Kontrolle über den Ausführungskontext zurückerhält. Dies kann wichtig sein, wenn Sie zuvor noch Arbeiten abschließen müssen. Mehr darüber, wie Sie Microtasks verwenden und warum Sie sich dafür entscheiden könnten, erfahren Sie in unserem Leitfaden zu Microtasks.

Microtasks sind wichtig, weil sie es ermöglichen, Aufgaben asynchron, aber in einer bestimmten Reihenfolge auszuführen. Weitere Informationen finden Sie unter Microtasks in JavaScript mit queueMicrotask() verwenden.

Microtasks sind besonders nützlich für Bibliotheken und Frameworks, die abschließende Bereinigungen oder andere Aufgaben unmittelbar vor dem Rendering ausführen müssen.

Syntax

js
queueMicrotask(callback)

Parameter

callback

Eine Function, die ausgeführt wird, wenn die Browser-Engine feststellt, dass Ihr Code sicher aufgerufen werden kann. Eingereihte Microtasks werden ausgeführt, nachdem alle ausstehenden Tasks abgeschlossen sind, aber bevor die Kontrolle an die Event-Loop des Browsers abgegeben wird.

Rückgabewert

Keiner (undefined).

Beispiele

js
queueMicrotask(() => {
  // function contents here
});

Aus der queueMicrotask-Spezifikation:

js
MyElement.prototype.loadData = function (url) {
  if (this._cache[url]) {
    queueMicrotask(() => {
      this._setData(this._cache[url]);
      this.dispatchEvent(new Event("load"));
    });
  } else {
    fetch(url)
      .then((res) => res.arrayBuffer())
      .then((data) => {
        this._cache[url] = data;
        this._setData(data);
        this.dispatchEvent(new Event("load"));
      });
  }
};

Spezifikationen

Spezifikation
HTML
# microtask-queuing

Browser-Kompatibilität

Siehe auch