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