| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/async_function* | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Januar 2020 browserbergreifend verfgbar.
Die Schlsselwrter async function* knnen verwendet werden, um eine asynchrone Generatorfunktion in einem Ausdruck zu definieren.
Sie knnen auch asynchrone Generatorfunktionen mithilfe der async function* Deklaration definieren.
async function joinAll(generator) {
let str = "";
for await (const val of generator()) {
str += val;
}
return str;
}
joinAll(async function* () {
yield await Promise.resolve("a");
yield await Promise.resolve("b");
yield await Promise.resolve("c");
}).then((str) => console.log(str));
// Expected output: "abc"
async function* (param0) {
statements
}
async function* (param0, param1) {
statements
}
async function* (param0, param1, /* , */ paramN) {
statements
}
async function* name(param0) {
statements
}
async function* name(param0, param1) {
statements
}
async function* name(param0, param1, /* , */ paramN) {
statements
}
Hinweis:
Eine Ausdrucksanweisung kann nicht mit den Schlsselwrtern async function beginnen, um Mehrdeutigkeiten mit einer async function* Deklaration zu vermeiden. Die Schlsselwrter async function leiten nur dann einen Ausdruck ein, wenn sie in einem Kontext erscheinen, der keine Anweisungen akzeptiert.
name OptionalDer Funktionsname. Kann weggelassen werden, in diesem Fall ist die Funktion anonym. Der Name ist nur lokal im Funktionskrper gltig.
paramN OptionalDer Name eines formalen Parameters fr die Funktion. Zur Syntax der Parameter siehe die Funktionsreferenz.
statements OptionalDie Anweisungen, die den Krper der Funktion bilden.
Ein async function* Ausdruck ist dem async function* Deklaration sehr hnlich und hat fast die gleiche Syntax. Der Hauptunterschied zwischen einem async function* Ausdruck und einer async function* Deklaration ist der Funktionsname, der in async function* Ausdrcken weggelassen werden kann, um anonyme Funktionen zu erstellen. Ein async function* Ausdruck kann als IIFE (Sofortig Ausgefhrter Funktionsausdruck) verwendet werden, der sofort ausgefhrt wird, sobald er definiert ist, wodurch Sie ein ad-hoc asynchrones iterierbares Objekt erstellen knnen. Weitere Informationen finden Sie auch im Kapitel ber Funktionen.
Das folgende Beispiel definiert eine unbenannte asynchrone Generatorfunktion und weist sie x zu. Die Funktion liefert das Quadrat ihres Arguments:
const x = async function* (y) {
yield Promise.resolve(y * y);
};
x(6)
.next()
.then((res) => console.log(res.value)); // 36
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-async-generator-function-definitions |
async function*AsyncGeneratorFunctionyieldyield*Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |