Baseline Widely available
Ein AsyncIterator
-Objekt ist ein Objekt, das dem asynchronen Iterator-Protokoll entspricht, indem es eine next()
-Methode bereitstellt, die ein Versprechen zurückgibt, das ein Iterator-Ergebnisobjekt erfüllt. Das Objekt AsyncIterator.prototype
ist ein verstecktes globales Objekt, von dem alle eingebauten asynchronen Iteratoren erben. Es bietet eine Methode [Symbol.asyncIterator]()
, die das asynchrone Iterator-Objekt selbst zurückgibt, und macht den asynchronen Iterator dadurch auch asynchron iterabel.
Beachten Sie, dass AsyncIterator
kein globales Objekt ist, obwohl es in Zukunft mit dem Vorschlag zu asynchronen Iterator-Hilfsfunktionen einer sein wird. Das Objekt AsyncIterator.prototype
, das von allen eingebauten asynchronen Iteratoren geteilt wird, kann mit folgendem Code erhalten werden:
const AsyncIteratorPrototype = Object.getPrototypeOf(
Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),
);
Beschreibung
Derzeit ist das einzige eingebaute JavaScript-Async-Iterator-Objekt das AsyncGenerator
-Objekt, das von asynchronen Generatorfunktionen zurückgegeben wird. Es gibt einige andere eingebaute asynchrone Iteratoren in Web-APIs, wie zum Beispiel den eines ReadableStream
.
Jeder dieser asynchronen Iteratoren hat ein eigenes Prototypobjekt, das die next()
-Methode definiert, die von dem jeweiligen asynchronen Iterator verwendet wird. Alle diese Prototypobjekte erben von AsyncIterator.prototype
, das eine Methode [Symbol.asyncIterator]()
bereitstellt, die das asynchrone Iterator-Objekt selbst zurückgibt, und den asynchronen Iterator dadurch auch asynchron iterabel macht.
Hinweis: AsyncIterator.prototype
implementiert nicht [Symbol.iterator]()
, daher sind asynchrone Iteratoren standardmäÃig nicht synchron iterabel.
AsyncIterator.prototype[Symbol.asyncDispose]()
Ruft die Methode return()
von this
auf und wartet auf deren Erfüllung, falls sie existiert. Dies implementiert das asynchrone Entsorgungsprotokoll und ermöglicht es, es zu entsorgen, wenn es mit await using
verwendet wird.
AsyncIterator.prototype[Symbol.asyncIterator]()
Gibt das asynchrone Iterator-Objekt selbst zurück. Dies erlaubt es asynchronen Iterator-Objekten auch asynchron iterabel zu sein.
Alle eingebauten asynchronen Iteratoren sind auch asynchron 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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4