WorkerGlobalScope: queueMicrotask()-Methode
Hinweis: Dieses Feature ist nur verfügbar in Web Workers.
Die queueMicrotask()
-Methode des WorkerGlobalScope
-Interfaces
reiht eine Mikrotask ein, die zu einem sicheren Zeitpunkt vor der Rückkehr der Kontrolle zur Ereignisschleife des Browsers ausgeführt wird.
Die Mikrotask ist eine kurze Funktion, die nach Abschluss der aktuellen Task ausgeführt wird und wenn kein anderer Code darauf wartet, ausgeführt zu werden, bevor die Kontrolle des Ausführungskontextes an die Ereignisschleife des Browsers zurückgegeben wird.
Dies ermöglicht es Ihrem Code, ohne Beeinträchtigung durch anderen, möglicherweise höher priorisierten, anstehenden Code zu laufen, jedoch bevor der Browser die Kontrolle über den Ausführungskontext zurückerlangt, möglicherweise abhängig von der Arbeit, die Sie abschließen müssen. Sie können mehr über die Verwendung von Mikrotasks und warum Sie sich dafür entscheiden könnten, in unserem Mikrotask-Leitfaden erfahren.
Die Bedeutung von Mikrotasks liegt in ihrer Fähigkeit, Aufgaben asynchron, aber in einer bestimmten Reihenfolge auszuführen. Weitere Einzelheiten finden Sie unter Verwendung von Mikrotasks in JavaScript mit queueMicrotask()
.
Mikrotasks sind besonders nützlich für Bibliotheken und Frameworks, die letzten Bereinigungen oder andere Aufgaben unmittelbar vor der Darstellung ausführen müssen.
Syntax
queueMicrotask(callback)
Parameter
callback
-
Eine
function
, die ausgeführt werden soll, wenn die Browser-Engine entscheidet, dass es sicher ist, Ihren Code auszuführen. Eingereihte Mikrotasks werden ausgeführt, nachdem alle anstehenden Aufgaben abgeschlossen sind, jedoch bevor die Kontrolle an die Ereignisschleife des Browsers übergeben wird.
Rückgabewert
Keine (undefined
).
Beispiele
queueMicrotask(() => {
// function contents here
});
Aus der queueMicrotask-Spezifikation entnommen:
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