Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez également contribuer en rejoignant la communauté francophone sur MDN Web Docs.

AsyncFunction

BaselineWidely available

Le constructeurAsyncFunction crée un nouvel objet pourune fonction asynchrone. En JavaScript, chaque fonction asynchrone est en fait un objetAsyncFunction.

On notera queAsyncFunctionn'est pas un objet global. On peut l'obtenir grâce au code suivant :

js
Object.getPrototypeOf(async function () {}).constructor;

Syntaxe

js
new AsyncFunction(arg0, corpsFonction);new AsyncFunction(arg0, arg1, corpsFonction);new AsyncFunction(arg0, arg1, ...argN, corpsFonction);

Paramètres

arg1, arg2, ... argN

Les noms à utiliser comme noms d'arguments formels. Chacun doit être une chaîne de caractères correspondant à un paramètre JavaScript valide (que ce soitun identifiant,un paramètre du reste, ouune affectation par décomposition).

Les paramètres étant analysés comme les déclarations de fonction, les espaces et commentaires sont acceptés. Par exemple :"x", "laValeur = 42", "[a, b] /* nombres */" — ou"x, laValeur = 42, [a, b] /* nombres */". ("x, laValeur = 42", "[a, b]" est également correct mais moins lisible.)

corpsFonction

Une chaîne de caractères qui contient les instructions JavaScript définissant la fonction.

Description

Les objets defonction asynchrone créés avec le constructeurAsyncFunction sont analysés lorsque la fonction est créée. C'est moins efficace que de déclarer une fonction asynchrone avec uneexpression de fonction asynchrone et de l'appeler depuis le code, car ces fonctions sont analysées avec le reste du code.

Tous les arguments passés à la fonction sont traités comme les noms des identifiants des paramètres de la fonction qui sera créée, dans l'ordre dans lequel ils sont passés.

Note :Lesfonctions asynchrones créées avec le constructeurAsyncFunction ne créent pas de fermetures avec leurs contextes de création. Elles sont toujours créées dans la portée globale.

Lorsqu'on les exécute, elles ne pourront accéder qu'à leurs variables locales et aux variables globales, pas à celles qui appartiennent à la portée dans laquelleAsyncFunction a été appelé.

On aurait donc un comportement différent si on appelaiteval() avec le code de l'expression de la fonction asynchrone.

Si on appelleAsyncFunction comme une fonction (c'est-à-dire sansnew), cela aura le même effet que s'il est appelé comme un constructeur.

Exemples

Créer une fonction asynchrone avec le constructeurAsyncFunction()

js
function resoudreApres2Secondes(x) {  return new Promise((resolve) => {    setTimeout(() => {      resolve(x);    }, 2000);  });}let AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;let a = new AsyncFunction(  "a",  "b",  "return await resoudreApres2Secondes(a) + await resoudreApres2Secondes(b);",);a(10, 20).then((v) => {  console.log(v); // affiche 30 dans la console après 4 secondes});

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-async-function-objects

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp