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 Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Die Deklaration async function* erstellt eine Bindung einer neuen asynchronen Generatorfunktion zu einem gegebenen Namen.
Sie können asynchrone Generatorfunktionen auch mit dem async function* Ausdruck definieren.
Hinweis: Asynchrone Generatorfunktionen haben keine Gegenstücke in Pfeilfunktionen.
Hinweis: function und * sind separate Tokens, daher können sie durch Leerzeichen oder Zeilentrenner getrennt werden. Es darf jedoch kein Zeilentrenner zwischen async und function stehen, da ansonsten ein Semikolon automatisch eingefügt wird, wodurch async zu einem Bezeichner wird und der Rest zu einer function* Deklaration.
Der Funktionsname.
param OptionalDer Name eines formalen Parameters für die Funktion. Informationen zur Syntax der Parameter finden Sie im Funktionsleitfaden.
statements OptionalDie Anweisungen, die den Körper der Funktion bilden.
Eine async function* Deklaration erstellt ein AsyncGeneratorFunction Objekt. Jedes Mal, wenn eine asynchrone Generatorfunktion aufgerufen wird, gibt sie ein neues AsyncGenerator Objekt zurück, das dem asynchronen Iterator-Protokoll entspricht. Jeder Aufruf von next() gibt ein Promise zurück, das sich auf das Iterator-Ergebnisobjekt auflöst.
Eine asynchrone Generatorfunktion kombiniert die Merkmale von asynchronen Funktionen und Generatorfunktionen. Sie können sowohl die Schlüsselwörter await als auch yield innerhalb des Funktionskörpers verwenden. Dies ermöglicht es Ihnen, asynchrone Aufgaben auf ergonomische Weise mit await zu bearbeiten, während Sie die träge Natur von Generatorfunktionen nutzen.
Wenn ein Promise aus einem asynchronen Generator übergeben wird, wird der endgültige Zustand des Iterator-Ergebnis-Promises dem des übergebenen Promises entsprechen. Zum Beispiel:
Error: failed wird protokolliert, da wenn das übergebene Promise abgelehnt wird, das Iterator-Ergebnis ebenfalls abgelehnt wird. Die value-Eigenschaft des aufgelösten Ergebnisses eines asynchronen Generators wird kein weiteres Promise sein.
async function* Deklarationen verhalten sich ähnlich wie function Deklarationen — sie werden gehoisted an den Anfang ihres Bereichs und können überall in ihrem Bereich aufgerufen werden, und sie können nur in bestimmten Kontexten erneut deklariert werden.
Asynchrone Generatorfunktionen erzeugen immer Promises von Ergebnissen — sogar wenn jeder yield Schritt synchron ist.
In diesem Beispiel lesen wir eine Reihe von Dateien und greifen nur auf deren Inhalt zu, wenn dies angefordert wird, mit Hilfe des Node fs/promises Moduls.
| ECMAScript® 2027 Language Specification # sec-async-generator-function-definitions |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.