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 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