Async/Await
Avec les promesses, nous pouvons utiliser le mot clé async
pour déclarer les fonctions asynchrones qui vont renvoyer une promesse. Tandis que le mot clé await
fait attendre JavaScript jusqu'à ce que la promesse s'achève et renvoie une réponse. Ces deux mots clés rendent l'écriture des promesses plus facile. Voici un exemple:
// Une fonction asynchrone f
async function f() {
return 1;
}
// La résolution d'une promesse
f().then(alert); // 1
L'exemple ci-dessus peut être écrit comme suit :
function f() {
return Promise.resolve(1);
}
f().then(alert); // 1
async
fait en sorte que la fonction renvoie une promesse, cela permet d'encapsuler les valeurs qui ne sont pas des promesses. Avec await
, nous pouvons indiquer à JavaScript d'attendre jusqu'à ce que la promesse soit résulue et renvoie sa valeur.
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("Welcome to Learn JavaScript!"), 1000)
});
let result = await promise; // Attend la résolution de la promesse.
alert(result); // "Welcome to Learn JavaScript!"
}
f();
Le mot clé await
net peut être utilisé que dans une fonction déclarée avec async
.