Maison >interface Web >js tutoriel >Comment les promesses, les objets en JavaScript, contiennent-ils des valeurs primitives ?
Accès à la valeur des promesses
Les promesses sont couramment utilisées pour les opérations asynchrones en JavaScript. L'une des méthodes clés pour interagir avec les promesses est la méthode .then(). Cette méthode nous permet d'enchaîner plusieurs promesses et d'accéder à la valeur de la promesse précédente dans les promesses suivantes.
Considérons l'exemple angulaire suivant :
promiseB = promiseA.then(function(result) { return result + 1; });
Cet exemple définit promiseB comme une nouvelle promesse qui est résolu immédiatement après la résolution de promiseA. D'après la documentation Angular, "sa valeur sera le résultat de promiseA incrémenté de 1."
La question se pose : comment un objet de promesse, qui est de type Object, peut-il contenir une valeur primitive comme un nombre ?
La réponse réside dans la sémantique de la méthode .then(). La fonction de rappel de réussite fournie à .then() renvoie une nouvelle valeur qui devient la valeur de la nouvelle promesse. Dans ce cas, la fonction de rappel de succès renvoie le résultat 1, qui incrémente la valeur du résultat et la renvoie comme valeur de promiseB.
Pour accéder à la valeur de promiseB, nous pouvons enchaîner une autre méthode .then() et fournir une fonction de rappel de réussite :
promiseB.then(function(result) { // Use the result of promiseB here });
Dans ce rappel, nous aurons accès à la valeur du résultat, qui est la valeur incrémentée du précédent promise.
ES7 (2016) a introduit la syntaxe async/await, offrant une manière alternative de gérer les promesses. En utilisant wait, nous pouvons déballer directement la valeur de la promesse, éliminant ainsi le besoin de chaîner plusieurs méthodes .then(). Par exemple :
async function doSomething() { let result = await functionThatReturnsPromiseA(); return result + 1; }
Dans cet exemple, le mot-clé wait est utilisé dans une fonction asynchrone. Le mot clé wait suspend l'exécution de la fonction jusqu'à ce que functionThatReturnsPromiseA() soit résolu. Une fois la promesse résolue, la valeur de la promesse est attribuée à la variable résultat et la fonction continue son exécution.
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!