Maison > interface Web > js tutoriel > Comment puis-je accéder aux résultats de promesses intermédiaires dans une chaîne de promesses plates ?

Comment puis-je accéder aux résultats de promesses intermédiaires dans une chaîne de promesses plates ?

Linda Hamilton
Libérer: 2024-12-29 15:33:11
original
514 Les gens l'ont consulté

How Can I Access Intermediate Promise Results in a Flat Promise Chain?

Accès aux résultats de promesses intermédiaires dans une chaîne de promesses plates

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.

Promise Combinators

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.

Exemple

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
    });
}
Copier après la connexion

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.

Méthodes d'assistance

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) { … });
});
Copier après la connexion

Promise.join

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) { … });
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal