0
我在我的控制器中執行一些任務的函數,其中一個是檢查使用我的服務,如果一些價格或有效,如果有任何錯誤停止執行代碼的其餘部分,問題是我的變量「錯誤」沒有被更新,基本上在我的承諾中,當有錯誤時它會增加錯誤變量,然後在這種情況之後有任何錯誤返回(停止)。但不能弄清楚爲什麼不更新變量錯誤。承諾不更新我的變量
我的代碼:
function apply(){
var error = 0;
if(vm.costPrice){
vm.name="";
for (var i = 0; i < vm.costPrice.length; i++) {
(function (i) {
if (isChecked(vm.costPrice[i].id)) {
//create later a service that accepts array of data (less requests = better performance)
MyService.validateThings(vm.product.pvp, vm.costPrice[i].discount_price)
.then(function (response) {
},
function (response) {
error++;
vm.isErrorCostPrice = true;
if (i > 0) {
vm.name += ' ';
}
vm.name += vm.costPrice[i].condition.name;
});
}
}(i));
}
if(error > 0){
return;
}
// Other code above...
}
也許格式化有點代碼:
因爲在這個問題上的答案描述你或許可以做些什麼? –
但是,這是因爲'validateThings'異步運行,所以在更新錯誤之前,您很可能會碰到if語句。 –
因此,任何建議我將如何解決它? –