我在node.js中有一个循环
for (var i in files){ var all = fs.readdirsync("./0"); async.eachSeries(all,function(item){ check(item); } }
check(item)具有对另一个函数的回调.
我可以看到,async.eachSeries不会同步执行.在check()函数中的回调完成之前,循环继续执行其他项.
如何让循环等到迭代完成(包括回调)?
解决方法
假设check接受回调,我们可以使用
mapSeries
来实现.
async.mapSeries(files,function(file,outerCB) { var all = fs.readdirsync("./0"); async.mapSeries(all,function(item,cb){ check(item,cb); },outerCB); },function(err,results) { // This is called when everything's done });