Afin de récupérer les résultats de promesses intermédiaires au sein d'une chaîne de promesses plates, il est nécessaire de diviser la chaîne en plusieurs segments.
Au lieu de s'appuyer sur le paramètre d'un seul rappel pour obtenir des valeurs intermédiaires, il Il est recommandé d'utiliser des combinateurs de promesses pour créer la valeur composite souhaitée. Cette approche garantit un flux de contrôle clair et structuré, rendant la modularisation simple.
Considérez l'exemple suivant :
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 }); }
Dans cet exemple, le combinateur de promesses Promise. all est utilisé pour agréger les résultats de a et b. Le rappel qui suit Promise.all peut alors accéder et utiliser à la fois resultA et resultB pour construire la valeur composite.
Les bibliothèques comme Q, Bluebird et when fournissent des méthodes d'assistance telles que . se propager pour simplifier le traitement des résultats de promesses multiples dans ES5.
… return Promise.all([a, b]).then(function(results) { results.spread(function(resultA, resultB) { … }); });
Bluebird propose une fonction Promise.join dédiée comme alternative plus efficace à la combinaison Promise.all et .spread.
… 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!