Window: queueMicrotask() Methode

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

Die Mikrotask ist eine kurze Funktion, die nach Abschluss der aktuellen Aufgabe und wenn kein anderer Code darauf wartet, ausgeführt zu werden, bevor die Kontrolle des Ausführungskontexts an die Ereignisschleife des Browsers zurückgegeben wird, ausgeführt wird.

Dies ermöglicht es Ihrem Code, ohne Beeinträchtigung anderer, potenziell höher priorisierter, ausstehender Codes zu laufen, jedoch bevor der Browser die Kontrolle über den Ausführungskontext zurückerlangt, möglicherweise abhängig von Arbeiten, die Sie abschließen müssen. Sie können mehr darüber erfahren, wie Sie Mikrotasks verwenden und warum Sie dies möglicherweise tun möchten, in unserem Mikrotask-Leitfaden.

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

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

Syntax

js
queueMicrotask(callback)

Parameter

callback

Eine function, die ausgeführt wird, wenn die Browser-Engine feststellt, dass es sicher ist, Ihren Code aufzurufen. Eingereihte Mikrotasks werden ausgeführt, nachdem alle ausstehenden Aufgaben abgeschlossen sind, aber bevor die Kontrolle an die Ereignisschleife des Browsers übergeben wird.

Rückgabewert

Keine (undefined).

Beispiele

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

Entnommen 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
# microtask-queuing

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
queueMicrotask

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch