Maison > interface Web > js tutoriel > Comment puis-je accéder aux résultats des promesses précédentes dans une chaîne JavaScript .then() ?

Comment puis-je accéder aux résultats des promesses précédentes dans une chaîne JavaScript .then() ?

Mary-Kate Olsen
Libérer: 2024-12-27 14:59:10
original
906 Les gens l'ont consulté

How Can I Access Previous Promise Results in a JavaScript .then() Chain?

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

Alternative ES5 :

…
return a.then(function(resultA) {
  return b.then(function(resultB) {
    // more processing
    return // something using both resultA and resultB
  });
});
Copier après la connexion

Bluebird solution :

…
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