Maison >interface Web >js tutoriel >Pourquoi async/await renvoie-t-il toujours une promesse ?

Pourquoi async/await renvoie-t-il toujours une promesse ?

DDD
DDDoriginal
2024-12-19 16:59:08528parcourir

Why Does async/await Always Return a Promise?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn