Expression async function*
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.
Les mots-clés async function*
peuvent être utilisés afin de créer une fonction génératrice asynchrone au sein d'une expression.
Exemple interactif
async function* foo() { yield await Promise.resolve("a"); yield await Promise.resolve("b"); yield await Promise.resolve("c"); } let str = ""; async function generate() { for await (const val of foo()) { str = str + val; } console.log(str); } generate(); // Expected output: "abc"
Syntaxe
async function* (param0) { instructions } async function* (param0, param1) { instructions } async function* (param0, param1, /* … ,*/ paramN) { instructions } async function* nom(param0) { instructions } async function* nom(param0, param1) { instructions } async function* nom(param0, param1, /* … ,*/ paramN) { instructions }
Paramètres
nom
FacultatifLe nom de la fonction. S'il est absent, la fonction est anonyme. Le nom est uniquement local au corps de la fonction.
paramN
FacultatifLe nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
instructions
FacultatifLes instructions qui forment le corps de la fonction.
Description
Une expression async function*
est très proche et possède quasiment la même syntaxe qu'une instruction async function*
. La différence principale entre une expression async function*
et une instruction async function*
est que le nom de la fonction peut être omis dans les expressions async function*
afin de créer des fonctions génératrices asynchrones anonymes. Voir aussi le chapitre sur les fonctions en JavaScript pour plus d'informations.
Exemples
Utiliser async function*
L'exemple qui suit définit une fonction génératrice asynchrone anonyme et l'affecte à x
. Cette fonction génère le carré de son argument :
const x = async function* (y) { yield Promise.resolve(y * y); }; x(6) .next() .then((res) => console.log(res.value)); // affiche 36
Spécifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-async-generator-function-definitions |
Compatibilité des navigateurs
Voir aussi
- L'instruction
async function*
- L'objet
AsyncGeneratorFunction
- Le protocole itérateur
- L'objet
GeneratorFunction
yield
yield*
- L'objet
Function
- Les fonctions en JavaScript