HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
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.
View in English Always switch to English
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2017.
Le mot-clé async function peut être utilisé pour définir une fonction asynchrone au sein d'une expression.
async function
Note : Il est aussi possible de définir une fonction asynchrone en utilisant une instruction async function.
async function [name]([param1[, param2[, …, paramN]]]) { instructions }
name
Le nom de la fonction. Il est facultatif et s'il n'est pas utilisé, la fonction est anonyme. 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 des fonctions fléchées pour les expressions de fonction asynchrone.
Une expression async function est très proche, et partage quasiment la même syntaxe avec une instruction async function. La différence principale entre une expression async function et une instruction async function est qu'on peut omettre le nom de la fonction dans les expressions async function. On peut donc utiliser une expression async function afin de créer une IIFE (pour Immediately Invoked Function Expression) qu'on appelle au moment de sa définition. Voir également le chapitre sur les fonctions pour plus d'informations.
function
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. });
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
AsyncFunction
await