Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Expression async function*
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2020.
Les mots-clésasync function* peuvent être utilisés afin de créer une fonction génératrice asynchrone au sein d'une expression.
Dans cet article
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
nomFacultatifLe nom de la fonction. S'il est absent, la fonction estanonyme. Le nom est uniquement local au corps de la fonction.
paramNFacultatifLe nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
instructionsFacultatifLes instructions qui forment le corps de la fonction.
Description
Une expressionasync function* est très proche et possède quasiment la même syntaxe qu'uneinstructionasync function*. La différence principale entre une expressionasync function* et une instructionasync function* est quele nom de la fonction peut être omis dans les expressionsasync function* afin de créer des fonctions génératrices asynchronesanonymes. Voir aussi le chapitre surles 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 36Spé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 yieldyield*- L'objet
Function - Les fonctions en JavaScript