Maison >interface Web >js tutoriel >Comment accéder à la valeur résolue d'une chaîne de promesses en JavaScript ?

Comment accéder à la valeur résolue d'une chaîne de promesses en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 13:40:391058parcourir

How Do I Access the Resolved Value of a Promise Chain in JavaScript?

Comprendre le chaînage des promesses et l'accès aux valeurs

Lorsque vous travaillez avec des promesses dans des frameworks JavaScript comme Angular, vous pouvez rencontrer des fonctions asynchrones qui renvoient des promesses, comme l'exemple de la documentation $q d'Angular :

promiseB = promiseA.then(function(result) {
  return result + 1;
});

Alors que la documentation indique que "promiseB sera résolu immédiatement après la résolution de promiseA... avec le résultat de promiseA incrémenté de 1", on ne sait peut-être pas comment cela fonctionne.

La clé pour comprendre cela est de reconnaître que la fonction then dans promiseA renvoie une nouvelle promesse, promiseB. Cette nouvelle promesse est résolue immédiatement après la résolution de promiseA, et sa valeur est déterminée par la valeur de retour de la fonction de réussite dans promiseA.

Dans ce cas, la fonction de réussite renvoie "résultat 1", donc promiseB se résoudra avec la valeur du résultat incrémentée de 1. Par conséquent, pour accéder à cette valeur, vous pouvez procéder comme suit :

promiseB.then(function(result) {
    // Here you can use the result of promiseB
});

Dans les versions JavaScript modernes (ES7 et supérieures), vous pouvez utiliser le Syntaxe async/await pour obtenir la même fonctionnalité :

async function doSomething() {
    let result = await functionThatReturnsPromiseA();
    return result + 1;
}

Dans ce cas, wait déballe le résultat de promiseA et l'assigne directement à la variable de résultat, vous permettant de travailler avec la valeur sans accéder à l'objet de promesse .

Notez que async/await ne peut être utilisé que dans les fonctions asynchrones, qui renvoient toujours des promesses. Par conséquent, si vous souhaitez accéder à la valeur de retour d'une fonction asynchrone, vous devez utiliser wait dans un autre contexte asynchrone.

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!

Déclaration:
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