Je passe juste par là tutoriel et je n'arrive pas à comprendre pourquoi. await
ne fonctionne que dans async
fonction.
Du tutoriel :
Comme indiqué, await ne fonctionne qu'à l'intérieur d'une fonction asynchrone.
D'après ce que j'ai compris, async
enveloppe l'objet de retour de la fonction dans une Promise, afin que l'appelant puisse utiliser .then()
async function f() {
return 1;
}
f().then(alert); // 1
Et await
attend juste que la promesse s'installe dans le cadre de la async
fonction.
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("done!"), 1000)
});
let result = await promise; // wait till the promise resolves (*)
alert(result); // "done!"
}
f();
Il me semble que leurs usages ne sont pas liés, quelqu'un pourrait-il m'expliquer ?