Symbol.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.
Die statische Dateneigenschaft Symbol.asyncIterator
repräsentiert das wohlbekannte Symbol Symbol.asyncIterator
. Das asynchrone iterable Protokoll sucht dieses Symbol für die Methode, die den asynchronen Iterator für ein Objekt zurückgibt. Damit ein Objekt asynchron iterierbar ist, muss es einen [Symbol.asyncIterator]
-Schlüssel haben.
Probieren Sie es aus
Wert
Das wohlbekannte Symbol Symbol.asyncIterator
.
Eigenschaften von Symbol.asyncIterator | |
---|---|
Schreibbar | nein |
Aufzählbar | nein |
Konfigurierbar | nein |
Beispiele
Benutzerdefinierte asynchrone Iterables
Sie können Ihr eigenes asynchrones Iterable definieren, indem Sie die Eigenschaft [Symbol.asyncIterator]()
auf ein Objekt setzen.
const myAsyncIterable = {
async *[Symbol.asyncIterator]() {
yield "hello";
yield "async";
yield "iteration!";
},
};
(async () => {
for await (const x of myAsyncIterable) {
console.log(x);
}
})();
// Logs:
// "hello"
// "async"
// "iteration!"
Beim Erstellen einer API sollten Sie beachten, dass asynchrone Iterables so konzipiert sind, dass sie etwas iterierbares darstellen – wie ein Datenstrom oder eine Liste – und nicht dazu gedacht sind, in den meisten Situationen vollständig Rückrufe und Ereignisse zu ersetzen.
Eingebaute asynchrone Iterables
Es gibt kein Objekt in der Kern-JavaScript-Sprache, das asynchron iterierbar ist. Einige Web-APIs, wie zum Beispiel ReadableStream
, haben die Symbol.asyncIterator
-Methode standardmäßig gesetzt.
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-symbol.asynciterator |
Browser-Kompatibilität
BCD tables only load in the browser