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 queueMicrotask() Methode der WorkerGlobalScope-Schnittstelle
reiht eine Mikrotask ein, die zu einem sicheren Zeitpunkt vor der Rückkehr der Kontrolle zur
Ereignisschleife des Browsers ausgeführt werden soll.
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ührungskontextes an die Ereignisschleife des Browsers zurückgegeben wird.
Dies ermöglicht es Ihrem Code, auszuführen, ohne andere, potenziell höher priorisierte Aufgaben zu stören, die ausstehen, aber bevor der Browser die Kontrolle über den Ausführungskontext wiedererlangt, möglicherweise abhängig von Arbeiten, die Sie abschließen müssen. Weitere Informationen über die Verwendung von Mikrotasks und warum Sie dies tun sollten, finden Sie 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 Die Verwendung von Mikrotasks in JavaScript mit queueMicrotask().
Mikrotasks sind besonders nützlich für Bibliotheken und Frameworks, die letzte Aufräumarbeiten oder andere Aufgaben direkt vor dem Rendern durchführen müssen.
Syntax
queueMicrotask(callback)
Parameter
Rückgabewert
Keiner (undefined).
Beispiele
queueMicrotask(() => {
// function contents here
});
Entnommen 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> |