| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/async_function* | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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-cls async function* peuvent tre utiliss pour dfinir une fonction gnratrice asynchrone au sein d'une expression.
Vous pouvez galement dfinir des fonctions gnratrices asynchrones en utilisant une dclaration async function*.
async function joinAll(generator) {
let str = "";
for await (const val of generator()) {
str += val;
}
return str;
}
joinAll(async function* () {
yield await Promise.resolve("a");
yield await Promise.resolve("b");
yield await Promise.resolve("c");
}).then((str) => console.log(str));
// Rsultat attendu : "abc"
async function* (param0) {
statements
}
async function* (param0, param1) {
statements
}
async function* (param0, param1, /* , */ paramN) {
statements
}
async function* name(param0) {
statements
}
async function* name(param0, param1) {
statements
}
async function* name(param0, param1, /* , */ paramN) {
statements
}
Note :
Une instruction d'expression ne peut pas commencer par les mots-cls async function afin d'viter toute ambigut avec une dclaration async function. Les mots-cls async function ne commencent une expression que lorsqu'ils apparaissent dans un contexte qui ne peut pas accepter d'instructions.
name FacultatifLe nom de la fonction. Peut tre omis, auquel cas la fonction est anonyme. Le nom n'est local qu'au corps de la fonction.
paramN FacultatifLe nom d'un paramtre formel pour la fonction. Pour la syntaxe des paramtres, voir la rfrence sur les fonctions.
statements FacultatifLes instructions qui composent le corps de la fonction.
Une expression async function* est trs proche, et partage quasiment la mme syntaxe avec une dclaration async function*. La diffrence principale entre une expression async function* et une dclaration async function* est le nom de la fonction, qui peut tre omis dans les expressions async function* pour crer des fonctions anonymes. Une expression async function* peut tre utilise comme une IIFE (Immediately Invoked Function Expression) qui s'excute ds qu'elle est dfinie, ce qui permet de crer un objet itrable asynchrone ad hoc. Voir galement le chapitre sur les fonctions pour plus d'informations.
async function*L'exemple qui suit dfinit une fonction gnratrice asynchrone anonyme et l'affecte x. Cette fonction gnre le carr de son argument :
const x = async function* (y) {
yield Promise.resolve(y * y);
};
x(6)
.next()
.then((res) => console.log(res.value)); // 36
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-async-generator-function-definitions |
async function*AsyncGeneratorFunctionyieldyield*Cette page a t modifie le 5 sept. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |