De retour d'une promesse, alors()
J'ai un code javascript comme ceci:
function justTesting() {
promise.then(function(output) {
return output + 1;
});
}
var test = justTesting();
J'ai toujours une valeur non définie pour le var test. Je pense que c'est parce que les promesses n'est pas résolu jet..il y a un moyen de retourner une valeur à partir d'une des promesses?
- la valeur de retour d'une
then()
appel est de nouveau une promesse, qui encapsule la valeur de votre retour. - Vous avez une erreur de syntaxe, je ne pense pas que cette même analyse.
- le test n'est pas défini car justTesting ne retourne rien dans votre exemple (vous n'avez pas de retour). Ajouter un retour de test sera défini comme une promesse.
- Merci pour les commentaires..le point est à attribuer de sortie +1 pour test.
- Qu'est-ce que la variable
promise
. Vous ne le montrent pas définie n'importe où, et vous n'avez pas de retour quelque chose de votrejustTesting()
fonction. Si tu veux plus d'aide, vous devez décrire quel est le problème que vous essayez de résoudre plutôt que de simplement nous montrer le code qui est si "off" qu'il n'a même pas d'illustrer ce que vous êtes vraiment essayer de faire. Expliquer le problème que vous essayez de résoudre.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous retourner quelque chose à partir d'un
then()
de rappel, c'est un peu la magie. Si vous retourner une valeur, la prochainethen()
est appelée avec la valeur. Toutefois, si vous retourner quelque chose promesse, comme, la prochainethen()
attend sur elle, et n'est appelée que lorsque cette promesse s'installe (succède/échec).via https://developers.google.com/web/fundamentals/getting-started/primers/promises#queuing_asynchronous_actions
D'utiliser une promesse, vous devez appeler une fonction qui crée une promesse ou vous devez en créer un vous-même. Vous n'avez pas vraiment décrire ce problème vous êtes vraiment essayer de résoudre, mais voici comment créer une promesse à vous-même:
JS:
Ou, si vous avez déjà une fonction qui retourne une promesse, vous pouvez utiliser cette fonction et revenir sa promesse:
JS:
return
, c'est à direjustTesting
ditreturn.then => return
. Je sais que cela fonctionne bcs j'ai mis en place ce (bcs peluchage m'a forcé à, loin denew Promise
), mais pouvez-vous expliquer comment comprendre/penser que le retour/retour paire?.then()
est une fonction distincte de la fonction contenante donc, quand il est appelé, il a sa propre valeur de retour. Deuxièmement, la valeur de retour d'une.then()
gestionnaire devient la valeur résolue de la promesse. Donc,.then(val => {return 2*val;})
est en train de changer la valeur résolue deval
à2*val
.Ce que j'ai fait ici, c'est que j'ai retourné une promesse de l'justTesting fonction. Vous pouvez alors obtenir le résultat lorsque la fonction est réglée.
Espérons que cette aide!
Pour me rappel travaillé dans cette situation. J'ai eu le même problème, et toutes les réponses précédentes ne fonctionne pas pour moi (je ne sais pas vraiment pourquoi). Donc exemple de code qui devrait fonctionner: