使用外部脚本进行Javascript异步循环

时间:2017-04-26 06:30:17

标签: javascript

ex.callAPI函数是异步的,它是外部脚本的一部分。如何暂停执行循环,直到每次调用完成为止?

for (var x = 0; x < apiuRLs.length; x++) {

result = ex.callAPI(apiuRLs[x])  //async call
//do somthing with result
}

1 个答案:

答案 0 :(得分:0)

答案取决于callAPI的工作原理。它返回一个承诺,你可以这样做:

var urlIndex = 0;
function next() {
    ex.callAPI(apiuRLs[index]).then(function(result) {
       //Do something with result
       if (urlIndex++ >= apiuRLs.length) {
         next();
       } else {
         done();
       }         
    });
}

next();

如果callAPI接受回调,您可以执行以下操作:

var urlIndex = 0;
function onResult(result) {
    //Do something with result
     if (urlIndex++ >= apiuRLs.length) {
       ex.callAPI(apiuRLs[index], onResult);
     } else {
       done();
     }         
}

ex.callAPI(apiuRLs[index], onResult);