Accès aux résultats des promesses précédentes dans une chaîne .then()
Dans le but de structurer le code à l'aide de promesses, une "chaîne de promesses plates" comprenant plusieurs rappels .then() peuvent être créés. Cependant, accéder aux résultats de promesses intermédiaires au sein de cette chaîne peut être difficile car ils ne sont généralement pas susceptibles de rappels ultérieurs.
Briser la chaîne
Pour accéder aux valeurs intermédiaires, considérez briser la chaîne en petits morceaux. Au lieu d'attacher un seul rappel et d'essayer d'utiliser son paramètre à plusieurs reprises, attachez plusieurs rappels à la même promesse où chaque valeur de résultat est requise. En incorporant les combinateurs de promesses fournis par la bibliothèque, la valeur du résultat peut être construite.
Cette approche simplifie le flux de contrôle, améliore la composition et facilite la modularisation.
Exemple de code modifié :
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 }); }
Alternative ES5 :
… return a.then(function(resultA) { return b.then(function(resultB) { // more processing return // something using both resultA and resultB }); });
Bluebird solution :
… return Promise.join(a, b, function(resultA, resultB) { … });
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!