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
queueMicrotask(callback)
Parameter
Rückgabewert
Keiner (undefined).
Beispiele
queueMicrotask(() => {
// function contents here
});
Aus der queueMicrotask-Spezifikation:
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> |