0
私はいくつかのタスクを実行する関数を持っています。そのうちの1つは、価格や有効な値があれば私のサービスを使ってチェックし、問題は私の変数 "error"が更新されていないということです。基本的に私の約束では、エラーが発生したときにエラー変数をインクリメントし、その後にエラーが返されます(停止)。しかし、なぜ変数が更新されていないのか理解できません。私の変数を更新しないことを約束します
マイコード:
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ステートメントを実行する可能性が最も高いでしょう。 –
どのように私はそれを解決するだろうどのような提案? –