我想我只需要另外一双眼睛,因为我无法得到我在这里所缺少的东西。
$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时,我得到“无法读取属性”,然后是“未定义”。我尝试过几种不同的重构方式,但无法让它发挥作用。有谁看到我的错误?
答案 0 :(得分:3)
您的displaySuccessMessage
未返回承诺。事实上,它并没有任何回报。
假设cartService.emptyCart()
返回一个承诺,您可以像这样修改displaySuccessMessage
,它应该可以正常工作:
function displaySuccessMessage() {
$scope.success = true;
return cartService.emptyCart();
}