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();