Promesse - TypeError: Cannot read property 'puis' undefined
Je pense que j'ai juste besoin d'une autre paire d'yeux sur cela, parce que je ne peux pas obtenir ce que je suis absent ici.
$scope.checkout = function (form) {
//some code here
function checkoutErrorHandler(error) {
//some code here
}
function displaySuccessMessage() {
$scope.success = true;
cartService.emptyCart();
}
checkoutService.makePayment($scope.payment).then(function (i) {
//some code here
checkoutService.buyProducts($scope.payment, products, i).then(function () {
displaySuccessMessage().then(function(){
$scope.payment = {}; //clear checkout form
$scope.form.reset();
});
return displaySuccessMessage;
},
checkoutErrorHandler
);
}, checkoutErrorHandler);
};
J'ai "Impossible de lire la propriété", puis "undefined" quand je l'appelle displaySuccessMessage. J'ai essayé de refactoring de plusieurs manières différentes, mais impossible de le faire fonctionner. Personne ne voir mon erreur?
Le "displaySuccessMessage" ne comprend pas un
Ce
Juste pour info Que les deux utilisent le même gestionnaire d'erreur que vous pourriez utiliser un seul
return
déclaration.Ce
Pointy
dit, .then
n'est pas de la magie, vous avez besoin de retourner une promesse si vous voulez l'utiliser. Je pense que c'est juste une faute de frappe ici, donc le vote pour la fermer.Juste pour info Que les deux utilisent le même gestionnaire d'erreur que vous pourriez utiliser un seul
.catch()
après la makePayment().then()
.
OriginalL'auteur Paul Erdos | 2014-10-01
Vous devez vous connecter pour publier un commentaire.
Votre
displaySuccessMessage
ne renvoie pas une promesse. En fait, elle ne retourne rien.En supposant que
cartService.emptyCart()
retourne une promesse, vous pouvez modifierdisplaySuccessMessage
de ce genre et il devrait fonctionner très bien:OriginalL'auteur Shomz