Expression async function* - JavaScript | MDN
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é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
- L'instruction
async function* - L'objet
AsyncGeneratorFunction - Le protocole itérateur
- L'objet
GeneratorFunction yieldyield*- L'objet
Function - Les fonctions en JavaScript