Window: queueMicrotask() Methode

Die queueMicrotask() Methode der Window Schnittstelle reiht eine Mikrotask ein, die zu einem sicheren Zeitpunkt vor der Rückgabe der Kontrolle an die Eventschleife des Browsers ausgeführt wird.

Die Mikrotask ist eine kurze Funktion, die ausgeführt wird, nachdem die aktuelle Aufgabe ihre Arbeit abgeschlossen hat und wenn kein anderer Code darauf wartet, ausgeführt zu werden, bevor die Kontrolle des Ausführungskontextes an die Eventschleife des Browsers übergeben wird.

Dies ermöglicht es Ihrem Code, auszuführen, ohne andere möglicherweise höher priorisierte, ausstehende Codes zu stören, aber bevor der Browser die Kontrolle über den Ausführungskontext zurückerhält, möglicherweise basierend auf der Arbeit, die Sie abschließen müssen. Mehr über die Verwendung von Mikrotasks und warum Sie sich dafür entscheiden könnten, erfahren Sie in unserem Mikrotask-Leitfaden.

Die Bedeutung von Mikrotasks liegt in ihrer Fähigkeit, Aufgaben asynchron, aber in einer bestimmten Reihenfolge auszuführen. Weitere Details finden Sie unter Verwendung von Mikrotasks in JavaScript mit queueMicrotask().

Mikrotasks sind besonders nützlich für Bibliotheken und Frameworks, die abschließende Bereinigungen oder andere Aufgaben kurz vor dem Rendern durchführen müssen.

Syntax

js
queueMicrotask(callback)

Parameter

callback

Eine function, die ausgeführt wird, wenn die Browser-Engine bestimmt, dass es sicher ist, Ihren Code zu verwenden. Eingereihte Mikrotasks werden ausgeführt, nachdem alle ausstehenden Aufgaben abgeschlossen wurden, aber bevor die Steuerung an die Eventschleife des Browsers übergeben wird.

Rückgabewert

Keiner (undefined).

Beispiele

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

Übernommen 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

Specification
HTML Standard
# microtask-queuing

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch