Pourquoi async/await renvoie toujours une promesse
Lorsque vous travaillez avec async/await, il est crucial de comprendre que chaque fonction asynchrone renvoie un objet Promise . Le mot clé wait fonctionne sur les promesses, maintenant votre fonction jusqu'à ce que la promesse soit résolue ou rejetée.
Pourquoi console.log() ne fonctionne-t-il pas directement ?
Contrairement aux fonctions synchrones , les fonctions asynchrones ne renvoient pas immédiatement leur résultat. Au lieu de cela, ils renvoient une promesse qui, une fois résolue, contient le résultat. Ainsi, console.logging directement le résultat d'une fonction asynchrone n'imprimera que la promesse, pas sa valeur.
Utiliser then() pour déballer la promesse
Pour y accéder le résultat d'une fonction asynchrone, vous devez soit utiliser wait, soit la méthode .then(). La méthode .then() accepte un rappel qui prend la valeur résolue comme argument. Dans l'exemple de code, la méthode .then() est utilisée pour imprimer l'objet json.
Pourquoi pas Console.log(getJSON()) ?
Dans le extrait de code que vous avez fourni, console.log(getJSON()) renverra une promesse. En effet, wait ne déroule pas la promesse pour vous. Cela fait seulement attendre votre fonction que la promesse soit résolue. Vous devez toujours déballer manuellement la promesse en utilisant wait ou .then().
Conclusion
Pour utiliser async/await efficacement, n'oubliez pas que les fonctions asynchrones renvoient toujours des promesses. . Par conséquent, pour accéder au résultat d'une fonction asynchrone, vous devez soit utiliser wait, soit appeler la méthode .then() sur la promesse renvoyée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!