如何判断一个递归嵌套的回调函数已经结束
var readDirRecur= function(file, callback) {
fs.readdir(file, function(err, files) {
if(err) throw err;
files.forEach(function(item) {
var fullPath = file + '/' + item;
fs.stat(fullPath, function(err, stats) {
if (err) throw err;
if (stats.isDirectory()) {
readDirRecur(fullPath, callback);
}else{
/*not use ignore files*/
if(item[0] == '.'){
//console.log(item + ' is a hide file.');
}else{
fs.readFile(fullPath, 'utf8', function(err, data){
callback(item, data, fullPath);
})
}
}
})
},
function(err){
if(err) throw err;
})
})
}
```
## 例如:递归读取一个目录下的所有文件,如何判断以读取完所有的文件?