我想我只需要另一双眼睛看这个,因为我无法得到我在这里缺少的东西。
$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/