[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/async_function [Back]  [Original]

Expression async function - JavaScript | MDN

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

Expression async function

Baseline
Large disponibilit

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.

Les mots-cls async function peuvent tre utiliss pour dfinir une fonction asynchrone au sein d'une expression.

Vous pouvez galement dfinir des fonctions asynchrones en utilisant une dclaration async function ou la syntaxe flche.

Dans cet article

Syntaxe

js
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.

Paramtres

name Facultatif

Le 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 Facultatif

Le nom d'un paramtre formel pour la fonction. Pour la syntaxe des paramtres, voir la rfrence sur les fonctions.

statements Facultatif

Les instructions qui composent le corps de la fonction.

Description

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 simuler un await de niveau suprieur. Voir galement le chapitre sur les fonctions pour plus d'informations.

Exemples

Utiliser l'expression async function

js
function completeeApres2Secondes(x) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

// l'expression async function affecte  une variable
const add = async function (x) {
  const a = await completeeApres2Secondes(20);
  const b = await completeeApres2Secondes(30);
  return x + a + b;
};

add(10).then((v) => {
  console.log(v); // affiche 60 aprs 4 secondes.
});

// l'expression async function utilise comme IIFE
(async function (x) {
  const p1 = completeeApres2Secondes(20);
  const p2 = completeeApres2Secondes(30);
  return x + (await p1) + (await p2);
})(10).then((v) => {
  console.log(v); // affiche 60 aprs 2 secondes.
});

IIFE asynchrone

Un IIFE async permet d'utiliser await et for...await dans des contextes o await de niveau suprieur n'est pas disponible. Ici, nous utilisons une fonction flche pour dfinir l'IIFE, mais les expressions async function peuvent galement tre utilises.

js
const obtenirFluxFichier = async (url) => {
  // implmentation
};

(async () => {
  const diffusion = await obtenirFluxFichier(
    "https://domain.name/path/file.ext",
  );
  for await (const fragment of diffusion) {
    console.log({ fragment });
  }
})();

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-async-function-definitions

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page