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

js
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

nomFacultatif

Le nom de la fonction. S'il est absent, la fonction est anonyme. Le nom est uniquement local au corps de la fonction.

paramNFacultatif

Le nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.

instructionsFacultatif

Les 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 :

js
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