WorkerGlobalScope: Methode queueMicrotask()

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

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

Die Mikrotask ist eine kurze Funktion, die nach Abschluss der aktuellen Aufgabe ausgeführt wird 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.

Dadurch kann Ihr Code ausgeführt werden, ohne andere, potenziell höher priorisierte Code-Pendenzen zu stören, jedoch bevor der Browser die Kontrolle über den Ausführungskontext wiedererlangt, möglicherweise abhängig von Arbeit, die Sie abschließen müssen. Sie können mehr darüber erfahren, wie Sie Mikrotasks verwenden und warum Sie sich dafür entscheiden könnten, in unserem Leitfaden zu Mikrotasks.

Die Bedeutung von Mikrotasks liegt in der 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 Bereinigungen oder andere Aufgaben direkt vor der Darstellung durchführen müssen.

Syntax

js
queueMicrotask(callback)

Parameter

callback

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

Rückgabewert

Keiner (undefined).

Beispiele

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

Aus den queueMicrotask-Spezifikationen:

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