【发布时间】:2017-02-05 19:35:27
【问题描述】:
对于我正在做的一个项目,我有一个基于文件及其内容构造树模型的函数。我的解析文件函数是递归的,并且会继续调用它自己,直到它不能在目录树中更深入/点击一个不包含更多文件的文件。但是我不知道如何为此函数设置回调,因为它是递归的。截至目前,我只是让我的构造树方法超时,但这对我的问题来说是一个可怕且不可靠的解决方案。这是我的代码:
function constructTree(dir){
tree = new TreeModel()
root = tree.parse({name: 'Marshall McGee Sample Pack'});
parseFiles(dir, root, tree);
setTimeout(function(){
root.all().forEach(function(node){
console.log(node.model.name);
});
}, 1000)
}
function parseFiles(dir, parrent, tree){
fs.readdir(dir, function(err, files){
if(files){
for(i = 0; i < files.length; i++){
parrent.addChild(tree.parse({name: files[i]}));
console.log(files[i]);
parseFiles(dir + "/" + files[i], parrent, tree);
}
}
});
}
此代码“有效”但非常糟糕。我不知道如何确定我是否搜索了整个目录,或者如何正确地执行此操作。我希望我解释得很好!谢谢,任何帮助都被应用了!!!
【问题讨论】:
-
回调函数是什么意思?
-
我添加了
javascript标签,缺少该标签可以解释为什么您到现在都没有得到任何答案。
标签: javascript recursion callback tree