Expression async function
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.
Le mot-cléasync function
peut être utilisé pour définir une fonction asynchrone au sein d'une expression.
Note :Il est aussi possible de définir une fonction asynchrone en utilisant uneinstructionasync function
.
Syntaxe
async function [name]([param1[, param2[, …, paramN]]]) { instructions}
Paramètres
name
Le nom de la fonction. Il est facultatif et s'il n'est pas utilisé, la fonction estanonyme. Le nom utilisé est uniquement local pour le corps de la fonction.
paramN
Le nom d'un argument à passer à la fonction.
instructions
Les instructions qui composent le corps de la fonction.
Note :À partir d'ES2015 (ES6), il est aussi possible d'utiliser desfonctions fléchées pour les expressions de fonction asynchrone.
Description
Une expressionasync function
est très proche, et partage quasiment la même syntaxe avecune instruction async function. La différence principale entre une expression asyncfunction
et une instruction asyncfunction
est qu'on peut omettre le nom de la fonction dans les expressionsasync function
. On peut donc utiliser une expressionasync function
afin de créer uneIIFE (pourImmediately Invoked Function Expression) qu'on appelle au moment de sa définition. Voir également le chapitre surles fonctions pour plus d'informations.
Exemples
Exemple simple
function resolveAfter2Seconds(x) { return new Promise((resolve) => { setTimeout(() => { resolve(x); }, 2000); });}(async function (x) { // fonction asynchrone immédiatement appelée var a = resolveAfter2Seconds(20); var b = resolveAfter2Seconds(30); return x + (await a) + (await b);})(10).then((v) => { console.log(v); // affiche 60 après 2 secondes.});var add = async function (x) { var a = await resolveAfter2Seconds(20); var b = await resolveAfter2Seconds(30); return x + a + b;};add(10).then((v) => { console.log(v); // affiche 60 après 4 secondes.});
Spécifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-async-function-definitions |