我需要多次调用同一个异步函数,但直到一个调用完成(即执行回调函数时)。所以我的代码如下所示:
syncFunc(a, function() {
syncFunc(b, function() {
syncFunc(c, function() {
syncFunc(.....)
});
});
});
现在有可能以某种方式缩短它吗?我的第一个想法是使用 for 循环,例如:
syncParams = [a, b, c, ...];
for(var i = 0;; i++) {
syncFunc(syncParams[i], function() {
if(i < syncParams.length - 1) {
alert('finished');
break;
} else {
continue;
}
}
}
但显然这不起作用,因为没有连接到循环的继续和中断。我的另一个想法是使用间隔来检查一个异步调用是否完成,然后使用 next 参数调用下一个,但这似乎太复杂了。有没有不使用某些库的简单方法?
编辑:因为没有人理解库问题:我正在开发一个 PhoneGap 移动应用程序,并且使用我目前正在使用的 IDE 包含第三方库并不是那么愉快。我也很好奇这将如何工作。