AsyncIterator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Please take two minutes to fill out our short survey.
Ein AsyncIterator
-Objekt ist ein Objekt, das dem async Iterator-Protokoll entspricht, indem es eine next()
-Methode bereitstellt, die ein Promise zurückgibt, das ein Iterator-Ergebnisobjekt erfüllt. Das AsyncIterator.prototype
-Objekt ist ein verstecktes globales Objekt, von dem alle eingebauten async Iteratoren erben. Es stellt eine [Symbol.asyncIterator]()
-Methode bereit, die das async Iterator-Objekt selbst zurückgibt, wodurch der async Iterator auch async iterabel wird.
Beachten Sie, dass AsyncIterator
kein globales Objekt ist, obwohl es dies in Zukunft mit dem Async Iterator Helpers-Vorschlag sein wird. Das AsyncIterator.prototype
-Objekt, das von allen eingebauten async Iteratoren gemeinsam genutzt wird, kann mit dem folgenden Code erhalten werden:
const AsyncIteratorPrototype = Object.getPrototypeOf(
Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),
);
Beschreibung
Derzeit ist der einzige eingebaute async Iterator in JavaScript das AsyncGenerator
-Objekt, das von async Generator-Funktionen zurückgegeben wird. Es gibt einige andere eingebaute async Iteratoren in Web-APIs, wie zum Beispiel einen ReadableStream
.
Jeder dieser async Iteratoren hat ein eigenes Prototyp-Objekt, das die next()
-Methode definiert, die vom jeweiligen async Iterator verwendet wird. Alle diese Prototyp-Objekte erben von AsyncIterator.prototype
, das eine [Symbol.asyncIterator]()
-Methode bereitstellt, die das async Iterator-Objekt selbst zurückgibt, wodurch der async Iterator auch async iterabel wird.
Note:
AsyncIterator.prototype
implementiert nicht[Symbol.iterator]()
, sodass async Iteratoren nicht standardmäßig synchron iterierbar sind.
Instanzmethoden
AsyncIterator.prototype[Symbol.asyncIterator]()
-
Gibt das async Iterator-Objekt selbst zurück. Dadurch können async Iterator-Objekte auch async iterabel sein.
Beispiele
Verwenden eines async Iterators als async iterabel
Alle eingebauten async Iteratoren sind auch async iterabel, sodass Sie sie in einer for await...of
-Schleife verwenden können:
const asyncIterator = (async function* () {
yield 1;
yield 2;
yield 3;
})();
(async () => {
for await (const value of asyncIterator) {
console.log(value);
}
})();
// Logs: 1, 2, 3
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-asynciteratorprototype |