Dans ce didacticiel, vous découvrirez les mots-clés JavaScript async / await à l'aide d'exemples.
Vous utilisez le async
mot - clé avec une fonction pour représenter que la fonction est une fonction asynchrone. La fonction async renvoie une promesse.
La syntaxe de la async
fonction est:
async function name(parameter1, parameter2,… paramaterN) ( // statements )
Ici,
- nom - nom de la fonction
- paramètres - paramètres qui sont passés à la fonction
Exemple: fonction Async
// async function example async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f();
Production
Fonction asynchrone.
Dans le programme ci-dessus, le async
mot-clé est utilisé avant la fonction pour représenter que la fonction est asynchrone.
Puisque cette fonction retourne une promesse, vous pouvez utiliser la méthode de chaînage then()
comme ceci:
async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f().then(function(result) ( console.log(result) ));
Production
Fonction async 1
Dans le programme ci-dessus, la f()
fonction est résolue et la then()
méthode est exécutée.
JavaScript en attente de mot-clé
Le await
mot-clé est utilisé à l'intérieur de la async
fonction pour attendre l'opération asynchrone.
La syntaxe à utiliser en attente est:
let result = await promise;
L'utilisation de await
met la fonction async en pause jusqu'à ce que la promesse renvoie une valeur de résultat (résolution ou rejet). Par exemple,
// a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( // wait until the promise resolves let result = await promise; console.log(result); console.log('hello'); ) // calling the async function asyncFunc();
Production
Promesse résolue bonjour
Dans le programme ci-dessus, un Promise
objet est créé et il est résolu après 4000 millisecondes. Ici, la asyncFunc()
fonction est écrite à l'aide de la async
fonction.
Le await
mot-clé attend que la promesse soit complète (résolution ou rejet).
let result = await promise;
Par conséquent, bonjour n'est affiché qu'une fois que la valeur de promesse est disponible pour la variable de résultat.
Dans le programme ci-dessus, s'il await
n'est pas utilisé, bonjour s'affiche avant la résolution de la promesse.
![](https://cdn.wiki-base.com/5118073/javscript_asyncawait.png.webp)
Remarque : vous ne pouvez utiliser await
que les fonctions asynchrones.
La fonction asynchrone permet à la méthode asynchrone d'être exécutée de manière apparemment synchrone. Bien que l'opération soit asynchrone, il semble que l'opération soit exécutée de manière synchrone.
Cela peut être utile s'il y a plusieurs promesses dans le programme. Par exemple,
let promise1; let promise2; let promise3; async function asyncFunc() ( let result1 = await promise1; let result2 = await promise2; let result3 = await promise3; console.log(result1); console.log(result1); console.log(result1); )
Dans le programme ci-dessus, await
attend que chaque promesse soit complète.
La gestion des erreurs
Lors de l'utilisation de la async
fonction, vous écrivez le code de manière synchrone. Et vous pouvez également utiliser la catch()
méthode pour détecter l'erreur. Par exemple,
asyncFunc().catch( // catch error and do something )
L'autre façon de gérer une erreur consiste à utiliser try/catch
block. Par exemple,
// a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( try ( // wait until the promise resolves let result = await promise; console.log(result); ) catch(error) ( console.log(error); ) ) // calling the async function asyncFunc(); // Promise resolved
Dans le programme ci-dessus, nous avons utilisé try/catch
block pour gérer les erreurs. Si le programme s'exécute avec succès, il ira au try
bloc. Et si le programme renvoie une erreur, il ira au catch
bloc.
Pour en savoir plus try/catch
en détail, visitez JavaScript JavaScript try / catch.
Avantages de l'utilisation de la fonction asynchrone
- Le code est plus lisible que l'utilisation d'un rappel ou d'une promesse.
- La gestion des erreurs est plus simple.
- Le débogage est plus facile.
Remarque : ces deux mots async/await
- clés ont été introduits dans la nouvelle version de JavaScript (ES8). Certains navigateurs plus anciens peuvent ne pas prendre en charge l'utilisation de async / await. Pour en savoir plus, visitez JavaScript async / wait browser support.