Phi*_*enn 7 javascript jquery asynchronous
我有这样的事情:
for (var i=0;i<result.qry.ROWCOUNT;i++) {
myAsync(i);
}
Run Code Online (Sandbox Code Playgroud)
我怎么知道我的所有异步函数何时完成执行?
冒着有人回复"需要更多jQuery!"的风险,我可以使用jQuery promise对象吗?或推迟或类似的东西?
跟踪未完成的异步调用次数.当每个完成时,减少你的计数器.当你到0时,你处于最后一个回调中.
var asyncsLeft = 0;
for (var i=0;i<10;++i){
asyncsLeft++;
doSomethingAsyncWithCallback(function(){
// This should be called when each asynchronous item is complete
if (--asyncsLeft==0){
// This is the last one!
}
});
}
Run Code Online (Sandbox Code Playgroud)
由于JavaScript的单线程特性,没有潜在的竞争条件,您可能会在所有异步调用排队之前调用回调.如果你愿意,可以安全地asyncsLeft++拨打电话doSomethingAsynchronous.
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |