你需要 Async 这个库,协助处理各种异步循环。
---- 裸写的话大概是这么个思路 ----
var totoal = 10;
var done = 0;
for(var i = 0; i< totoal; i++) {
doSomeAsyncJob(function(error) {
done++;
if (done == totoal) {
// Continue
doNextJob();
}
});
}
node 同步的代码始终只有一个线程在处理,所以 done++;
这部分不会有多线程访问的问题。
当然肯定没有直接用 async 爽快。