簡體   English   中英

Promise - TypeError:無法讀取未定義的屬性'then'

[英]Promise - TypeError: Cannot read property 'then' of undefined

我想我只需要另外一雙眼睛,因為我無法得到我在這里所缺少的東西。

   $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時,我得到“無法讀取屬性”,然后是“未定義”。 我嘗試過幾種不同的重構方式,但無法讓它發揮作用。 有誰看到我的錯誤?

您的displaySuccessMessage不會返回承諾。 事實上,它不會返回任何東西。

假設cartService.emptyCart()返回一個promise ,你可以像這樣修改displaySuccessMessage ,它應該可以正常工作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM