Appeler l'asynchrone à partir du non-asynchrone
Nous avons une fonction “normale” appelée f
. Comment pouvez-vous appeler la fonction async
wait()
et utiliser son résultat à l’intérieur de f
?
async function wait() {
await new Promise(resolve => setTimeout(resolve, 1000));
return 10;
}
function f() {
// ...que devez-vous écrire ici?
// nous devons appeler async wait() et attendre pour obtenir 10
// Souvenez-vous, on ne peut pas utiliser "await".
}
P.S. La tâche est techniquement très simple, mais la question est assez courante pour les développeurs novices en matière d’async/await.
C’est le cas quand il est utile de savoir comment ça marche à l’intérieur.
Il suffit de traiter l’appel async
comme une promesse et d’y attacher .then
:
async function wait() {
await new Promise(resolve => setTimeout(resolve, 1000));
return 10;
}
function f() {
// affiche 10 après 1 seconde
wait().then(result => alert(result));
}
f();