From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../reference/operators/async_function/index.md | 116 ++++++++------------- 1 file changed, 44 insertions(+), 72 deletions(-) (limited to 'files/fr/web/javascript/reference/operators/async_function') diff --git a/files/fr/web/javascript/reference/operators/async_function/index.md b/files/fr/web/javascript/reference/operators/async_function/index.md index 2f5f493295..38334b17ee 100644 --- a/files/fr/web/javascript/reference/operators/async_function/index.md +++ b/files/fr/web/javascript/reference/operators/async_function/index.md @@ -9,46 +9,41 @@ tags: translation_of: Web/JavaScript/Reference/Operators/async_function original_slug: Web/JavaScript/Reference/Opérateurs/async_function --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Le mot-clé async function peut être utilisé pour définir une fonction asynchrone au sein d'une expression.

+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 une instruction async function.

-
+> **Note :** Il est aussi possible de définir une fonction asynchrone en utilisant une [instruction `async function`](/fr/docs/Web/JavaScript/Reference/Instructions/async_function). -

Syntaxe

+## Syntaxe -
async function [name]([param1[, param2[, ..., paramN]]]) {
-   instructions
-}
+ async function [name]([param1[, param2[, ..., paramN]]]) { + instructions + } -

Paramètres

+### Paramètres -
-
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.
-
+- `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.

-
+> **Note :** À partir d'ES2015 (ES6), il est aussi possible d'utiliser des [fonctions fléchées](/fr/docs/Web/JavaScript/Reference/Fonctions/Fonctions_fl%C3%A9ch%C3%A9es) pour les expressions de fonction asynchrone. -

Description

+## Description -

Une expression async function est très proche, et partage quasiment la même syntaxe avec {{jsxref('Instructions/async_function', 'une instruction async function',"",1)}}. 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.

+Une expression `async function` est très proche, et partage quasiment la même syntaxe avec {{jsxref('Instructions/async_function', 'une instruction async function',"",1)}}. 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](/fr/docs/Web/JavaScript/Reference/Fonctions) pour plus d'informations. -

Exemples

+## Exemples -

Exemple simple

+### Exemple simple -
function resolveAfter2Seconds(x) {
-  return new Promise(resolve => {
-    setTimeout(() => {
+```js
+function resolveAfter2Seconds(x) {
+  return new Promise(resolve => {
+    setTimeout(() => {
       resolve(x);
     }, 2000);
   });
@@ -58,7 +53,7 @@ original_slug: Web/JavaScript/Reference/Opérateurs/async_function
   var a = resolveAfter2Seconds(20);
   var b = resolveAfter2Seconds(30);
   return x + await a + await b;
-})(10).then(v => {
+})(10).then(v => {
   console.log(v);  // affiche 60 après 2 secondes.
 });
 
@@ -68,48 +63,25 @@ var add = async function(x) {
   return x + a + b;
 };
 
-add(10).then(v => {
+add(10).then(v => {
   console.log(v);  // affiche 60 après 4 secondes.
 });
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}{{Spec2('ESDraft')}} 
{{SpecName('ES2018', '#sec-async-function-definitions', 'async function')}}{{Spec2('ES2018')}} 
{{SpecName('ES2017', '#sec-async-function-definitions', 'async function')}}{{Spec2('ES2017')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.operators.async_function_expression")}}

- -

Voir aussi

- - +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}} | {{Spec2('ESDraft')}} |   | +| {{SpecName('ES2018', '#sec-async-function-definitions', 'async function')}} | {{Spec2('ES2018')}} |   | +| {{SpecName('ES2017', '#sec-async-function-definitions', 'async function')}} | {{Spec2('ES2017')}} | Définition initiale. | + +## Compatibilité des navigateurs + +{{Compat("javascript.operators.async_function_expression")}} + +## Voir aussi + +- {{jsxref("Instructions/async_function", "async function")}} +- L'objet {{jsxref("AsyncFunction")}} +- {{jsxref("Opérateurs/await", "await")}} -- cgit v1.2.3-54-g00ecf