Fonctions asynchrones et valeurs de retour
Votre problème est que les fonctions asynchrones, malgré le renvoi de valeurs, semblent souvent ne pas le faire car la valeur renvoyée est enveloppé dans une promesse. Pour accéder à la valeur finale, vous avez deux options :
1. Chaînage de promesse
Vous pouvez chaîner la méthode .then() d'une promesse pour récupérer la valeur finale :
<code class="javascript">let allPosts = new Posts('https://jsonplaceholder.typicode.com/posts'); allPosts.init() .then(d => { console.log(allPosts.getPostById(4)); // Here you can return the value as needed });</code>
2. Async/Await
Au sein d'une fonction asynchrone, vous pouvez utiliser wait pour suspendre temporairement l'exécution de la fonction et attendre qu'une promesse soit résolue :
<code class="javascript">async function myFunc() { const postId = 4; await allPosts.init(); // This is logging the correct value console.log('logging: ' + JSON.stringify(allPosts.getPostById(postId), null, 4)); // Return the result using await return allPosts.getPostById(postId); } myFunc() .then(result => console.log(result)) .catch(error => console.error(error));</code>
De cette façon, vous pouvez créez une fonction qui renvoie la valeur de getPostById(id) en gérant correctement la nature asynchrone de votre code.
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!