Maison >interface Web >js tutoriel >Comment puis-je accéder aux résultats de promesses intermédiaires dans une chaîne JavaScript `.then()` ?
Accès aux résultats de promesses intermédiaires dans une chaîne .then()
Les promesses offrent un moyen pratique de gérer les opérations asynchrones dans votre code. Cependant, vous pouvez parfois rencontrer un scénario dans lequel vous devez accéder aux résultats de promesses intermédiaires au sein d'une chaîne .then().
Le défi
Considérez la chaîne de promesses suivante :
function getExample() { return promiseA(…).then(function(resultA) { // Some processing return promiseB(…); }).then(function(resultB) { // More processing return // How do I gain access to resultA here? }); }
Dans cette chaîne, le résultat de promiseA() n'est pas accessible dans le rappel .then() pour promiseB(). Cela peut poser un problème si vous devez utiliser les deux résultats dans votre calcul final.
Briser la chaîne
Pour surmonter cette limitation, vous pouvez briser la chaîne en plusieurs morceaux et utilisez les combinateurs de promesses fournis par votre bibliothèque. Considérez la refactorisation suivante :
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // some processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // more processing return // something using both resultA and resultB }); }
Cette approche utilise Promise.all pour attendre que les deux promesses soient résolues avant de transmettre les résultats au rappel final .then().
Autre Options
En brisant votre chaîne et en utilisant ces alternatives, vous pouvez facilement accéder aux résultats de promesses intermédiaires et maintenir une structure de code claire et modulaire.
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!