我在node.js中有以下代码
for (var i = 0; i<allLetters.length; i++)
for (var k = 0; k<allLetters.length; k++){
var allFilesName = fs.readdirSync("/opt/ + allLetters[i] + "/" + allLetters[k]);
for (var t = 0; t< akkFilesName; t++)
dosomething(allFilesName[t];
}
dosomething
是一个带回调的函数,包括IO操作。
问题是我的应用程序在完成i, k & t
循环之前没有执行回调。意思是,我看到所有CPU时间都浪费在完成回调上,并且在完成所有循环之后,它执行回调,并从回调中返回。
我希望循环和回调将并行执行,所以当我进行循环时,我会从回调中得到结果。