async
async est un mot-clé lié aux opérations asynchrones qui n'a été introduit qu'en ES7, et il est étroitement lié à Promise et Generator.
Syntaxe
async function name([param[, param[, ... param]]]) { statements }
- name: Le nom de la fonction.
- param: Les noms des paramètres à transmettre à la fonction.
- statements: Les instructions du corps de la fonction.
Valeur de retour
Une fonction async renvoie un objet Promise, et vous pouvez utiliser la méthode then pour ajouter des fonctions de rappel.
Une fonction async peut contenir des expressions await. Lorsqu'une fonction async est exécutée, si elle rencontre await, elle suspend d'abord l'exécution, puis reprend la fonction async et renvoie la valeur résolue après que l'opération asynchrone déclenchée est terminée.
Le mot-clé await n'est valide qu'à l'intérieur d'une fonction async. Si vous utilisez await en dehors du corps d'une fonction async, vous n'obtiendrez qu'une erreur de syntaxe.
await
L'opérateur await est utilisé pour attendre un objet Promise, et il ne peut être utilisé qu'à l'intérieur d'une fonction async.
Syntaxe
[return_value] = await expression;
- expression : un objet Promise ou toute valeur à attendre.
Valeur de retour
Renvoie le résultat de traitement de l'objet Promise. Si ce qui est attendu n'est pas un objet Promise, la valeur elle-même est renvoyée.
Si un objet Promise est passé à un opérateur await, await attendra que la Promise se termine normalement et renverra son résultat de traitement.
Normalement, la commande await est suivie d'un objet Promise, mais elle peut aussi être suivie d'autres valeurs, telles que des chaînes de caractères, des booléens, des nombres et des fonctions ordinaires.
La manière dont await gère les différentes expressions qui le suivent :
- Objet Promise : await met en pause l'exécution, attend que l'objet Promise soit résolu, puis reprend la fonction async et retourne la valeur résolue.
- Objet non-Promise : retourne directement la valeur correspondante.