如何判断递归嵌套的回调函数已经结束?(结束的节点有多个,promise好像只能判断单链情况)
发布于 10 年前 作者 xiaofuzi 10998 次预览 最后一次回复是 9 年前 来自 问答
如何判断一个递归嵌套的回调函数已经结束
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;
})
})
}
```
## 例如:递归读取一个目录下的所有文件,如何判断以读取完所有的文件?4 回复
卧槽。。。。。。
不是已经读取完才会回调么
仅供参考
正好写过
遍历目录获得目录下所有文件的属性使用变量endTag记录进度非常感谢@William17的回答,关键时刻给出了思路。顺便刺激了我去深入了解promise