javascript - promise - TypeError : Cannot read property 'then' of undefined

标签 javascript angularjs promise

我想我只需要另一双眼睛看这个,因为我无法得到我在这里缺少的东西。

   $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);
    };

当我调用 displaySuccessMessage 时,我收到“无法读取未定义的‘then’属性”。我尝试过重构几种不同的方式,但无法使其正常工作。有人看到我的错误吗?

最佳答案

您的 displaySuccessMessage 没有返回 promise 。事实上,它不会返回任何内容。

假设 cartService.emptyCart() 返回一个 promise,您可以像这样修改 displaySuccessMessage,它应该可以正常工作:

    function displaySuccessMessage() {
        $scope.success = true;
        return cartService.emptyCart();
    }

关于javascript - promise - TypeError : Cannot read property 'then' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26151312/

相关文章:

javascript - 未捕获的ReferenceError : require is not defined - Electron js

javascript - Jasmine : Timeout - Async callback was not invoked within timeout

AngularJS 1.7.9 : how to debug "Possibly unhandled rejection: {}"?

javascript - Node.js 循环数据库插入

javascript - 如何在javascript中模拟@Html.ActionLink的点击?

javascript - 基于技能指数从 10 人列表中组成两个团队的算法

javascript - MVC 如何接收来自 JSON 的对象数组?

javascript - 罕见的 TypeError 错误

javascript - 最初的 promise 成功后又拒绝内心的 promise ?

javascript - AsyncIterable 和 Observable 之间的实际区别是什么?