[英]Elegant way for multiple asynchronous function calls in Javascript
我需要多次调用同一个异步函数,但是直到一次调用完成(即执行回调函数时)。 所以我的代码看起来像这样:
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;
}
}
}
但是显然这是行不通的,因为没有连接继续和中断循环。 我的另一个想法是使用间隔检查每秒是否完成了一个异步调用,然后使用下一个参数调用下一个,但这似乎太复杂了。 有没有使用某些库的简单方法?
编辑 :因为没有人能理解库问题:我正在开发PhoneGap移动应用程序,并且我正在使用IDE进行开发,所以加入第三方库并不是很高兴。 我也很好奇这将如何工作。
我看到您想每次使用不同的参数调用该函数。 那么async.forEachSeries将是最合适的。
如果您想每次使用相同的参数调用该函数,则async.whilst会很好地工作。 https://github.com/caolan/async/#whilsttest-fn-callback
@Jack提到了这个问题,您可以自己做一个很好的答案: 如何同步JavaScript回调?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.