Maison > interface Web > js tutoriel > Pourquoi ma fonction Async/Await renvoie-t-elle toujours une promesse ?

Pourquoi ma fonction Async/Await renvoie-t-elle toujours une promesse ?

Barbara Streisand
Libérer: 2024-12-02 02:08:10
original
890 Les gens l'ont consulté

Why Does My Async/Await Function Still Return a Promise?

Async/Await : Comprendre les valeurs de retour promises

Dans votre code, la fonction getJSON est une fonction asynchrone qui utilise la syntaxe async/await. Comme l'indique correctement la question, chaque fonction asynchrone renvoie un objet Promise. L'opérateur wait est ensuite utilisé pour suspendre l'exécution de la fonction jusqu'à ce que la promesse soit résolue ou rejetée.

Cependant, vous ne pouvez pas enregistrer le résultat de la fonction asynchrone directement avec console.log(getJSON()). En effet, wait ne suspend que l'exécution de la fonction et permet à la promesse de se résoudre avec le résultat. Cependant, la fonction elle-même renvoie toujours la promesse sous-jacente, et non le résultat non enveloppé.

Pour accéder au résultat de la promesse, vous devez soit utiliser la méthode then(), comme vous l'avez démontré, soit utiliser à nouveau wait dans un autre fonction asynchrone. Dans votre cas, getJSON().then(json => console.log(json)) enregistre le résultat { foo: 'bar' } car il enchaîne un gestionnaire then sur la promesse renvoyée par getJSON.

Comme mentionné dans la réponse, ce comportement est fondamental pour le modèle Promise. Les promesses représentent des opérations asynchrones qui peuvent être résolues à un moment futur non spécifié. La méthode then() vous permet de spécifier les actions à entreprendre lorsque la promesse est résolue.

En comprenant que les fonctions asynchrones renvoient toujours des promesses, même lorsque vous utilisez wait, vous pouvez gérer et consommer correctement le code asynchrone dans vos applications .

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal