Maison > interface Web > js tutoriel > le corps du texte

Comment accéder aux valeurs de retour des fonctions asynchrones avec async-await ?

DDD
Libérer: 2024-11-12 22:39:02
original
304 Les gens l'ont consulté

How to Access Return Values from Async Functions with async-await?

Renvoi de valeurs à partir de fonctions asynchrones avec async-await

Lors de l'appel d'une fonction asynchrone à l'aide de la syntaxe async-await, accès direct à la valeur de retour peut donner lieu à une promesse en attente. Cet article explique comment résoudre ce problème.

En attente de valeurs en dehors de la portée asynchrone

Votre tentative initiale d'enregistrement de la valeur de retour de la fonction getData a échoué car vous étiez tenter d'attendre une valeur en dehors d'une portée asynchrone. La syntaxe async-wait ne peut être utilisée que dans des fonctions ou des blocs asynchrones (indiqués par le mot-clé async).

IIFE asynchrone pour envelopper la journalisation

Pour résoudre ce problème, vous pouvez envelopper votre instruction console.log dans une expression de fonction immédiatement invoquée (IIFE) asynchrone comme ceci :

(async () => {
  console.log(await getData());
})();
Copier après la connexion
Copier après la connexion

Ceci garantit que la journalisation est effectuée dans un contexte asynchrone, permettant à la syntaxe d'attente de fonctionner correctement.

Omettre Async/Await pour les retours de promesse

Dans votre exemple, axios renvoie une promesse. Dans de tels cas, vous pouvez simplifier votre code en omettant la syntaxe async/await pour votre fonction getData et en utilisant directement l'objet Promise :

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}
Copier après la connexion

Ensuite, vous pouvez toujours utiliser l'IIFE asynchrone pour enregistrer le résultat comme avant :

(async () => {
  console.log(await getData());
})();
Copier après la connexion
Copier après la connexion

En suivant ces approches, vous pouvez vous assurer que les valeurs renvoyées par les fonctions asynchrones utilisant async-await sont correctement accessibles et géré.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal