Maison > interface Web > js tutoriel > Quelles sont les valeurs de retour des fonctions asynchrones et quel est leur lien avec les promesses ?

Quelles sont les valeurs de retour des fonctions asynchrones et quel est leur lien avec les promesses ?

DDD
Libérer: 2024-10-18 10:35:29
original
551 Les gens l'ont consulté

What Are the Return Values of Async Functions and How Do They Relate to Promises?

Fonctions asynchrones : comprendre les valeurs de retour et les promesses

Bien que les fonctions asynchrones vous permettent d'écrire du code dans un style synchrone, elles renvoient intrinsèquement des promesses. Cela peut prêter à confusion quant à la valeur de retour de votre code.

Promesses : un aperçu rapide

Les promesses sont des objets qui représentent l'achèvement ou l'échec éventuel d'une opération asynchrone. . Ils fournissent deux méthodes clés :

  • then(resolve, rejet) : traite le résultat de l'opération lorsqu'elle réussit (résolution) ou détecte une erreur (rejet).
  • catch( rejet) : gère les erreurs de manière asynchrone.

Fonctions et promesses asynchrones

Les fonctions asynchrones renvoient toujours une promesse, même si vous n'utilisez pas explicitement le mot-clé wait. . Cette promesse représente le résultat de l'opération asynchrone. Si la fonction renvoie une erreur, la promesse sera rejetée avec cette erreur.

Utilisation :

Promesses avec fonctions de rappel :

<code class="javascript">const myAsyncFunction = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
};

myAsyncFunction()
  .then(result => {
    console.log(`Callback Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>
Copier après la connexion

Promesses avec Async/Await :

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
  return result;
}

myAsyncFunction()
  .then(result => {
    console.log(`Await Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>
Copier après la connexion

Dans ces exemples, myAsyncFunction renvoie une promesse qui se résout avec la valeur « Valeur asynchrone » après un délai d'une seconde. . Les méthodes then et catch gèrent respectivement l'état résolu ou rejeté.

Renvoyer la promesse

Si vous souhaitez renvoyer la promesse elle-même sans aucune modification, vous pouvez simplement write :

<code class="javascript">const myAsyncFunction = () => {
  return new Promise(...);
};</code>
Copier après la connexion

Renvoi d'une valeur modifiée

Pour renvoyer une valeur modifiée à partir d'une fonction asynchrone, vous devez gérer le résultat Promise dans la méthode then et renvoyer la valeur modifiée. Par exemple :

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise(...);
  return result.toUpperCase();
}</code>
Copier après la connexion

Cette fonction renvoie une promesse qui se résout avec la version majuscule du résultat.

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
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