我正在尝试在循环中进行异步调用,使用返回的结果并使变量' q'可用于内部功能。
如何使q可用于内部函数(具有与异步调用之前相同的值)?
var oController = this;
for (var q = 0; q < dataArray.length; q++) {
var InspectionNo = dataArray[q].inspectionNo;
//async call
oController._validateInspection(InspectionNo)
//returns flag
.then(function(flag) {
debugger;
if (flag) {
//q is not defined here
oController._doSomething(q)
}
});
}
答案 0 :(得分:1)
尝试这样的事情:
var oController = this;
for (var q = 0; q < dataArray.length; q++) {
var InspectionNo = dataArray[q].inspectionNo;
//async call
Promise.all([oController._validateInspection(InspectionNo), q])
//returns flag
.then(function([flag, q]){
if(flag){
//q is not defined here
oController._doSomething(q)
}
});
}