Maison >interface Web >js tutoriel >Comment récupérer des valeurs de fonctions asynchrones à l'aide d'Async-Await ?

Comment récupérer des valeurs de fonctions asynchrones à l'aide d'Async-Await ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 05:06:15653parcourir

How to Retrieve Values from Asynchronous Functions Using Async-Await?

Récupération de valeur de fonction asynchrone à l'aide d'Async-Await

Lorsque vous travaillez avec des fonctions asynchrones en JavaScript qui utilisent la syntaxe async-wait, il est nécessaire de renvoyer correctement les valeurs que les fonctions appelantes doivent utiliser.

Pour renvoyer une valeur à partir d'une fonction asynchrone, vous devez utiliser le mot-clé return comme attendu. Cependant, si vous tentez d'accéder à la valeur de retour en dehors de la portée asynchrone, comme démontré dans l'exemple de code fourni, vous recevrez un objet Promise dans un état en attente.

Pour résoudre ce problème, il est nécessaire de enveloppez l'instruction de journalisation de votre console dans une IIFE (Immediately Invoked Function Expression) asynchrone, comme indiqué ici :

(async () => {
  console.log(await getData());
})();

Cela permet de préserver la portée asynchrone, permettant à la fonction d'accéder et de revenir la valeur souhaitée.

Notez que puisque la bibliothèque axios renvoie une promesse, il est également possible d'omettre la syntaxe d'attente asynchrone pour la fonction getData, comme indiqué ci-dessous :

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}

Vous peut ensuite envelopper l'instruction de journalisation de la console dans un IIFE asynchrone comme décrit ci-dessus pour récupérer la valeur de la fonction getData. Plus d’informations sur async/await peuvent être trouvées en ligne.

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