對於我正在做的項目,我有一個基於文件及其內容構建樹模型的函數。我的解析文件函數是遞歸的,並且將繼續調用它的自我,直到它不能在目錄樹中更深入/擊中不包含更多文件的文件。但是我不知道如何設置這個函數的回調函數,因爲它是遞歸的。截至目前,我只是將構建樹方法超時,但這對我的問題是一個可怕的和不可靠的解決方案。這裏是我的代碼:Aysncronous遞歸方法中的回調?
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);
}
}
});
}
此代碼「Works」,但可怕。我不知道如何確定我是否搜索了整個目錄或者如何正確執行此操作。我希望我解釋得很好!感謝和任何幫助appricated!
你是什麼意思的回調函數? – prabodhprakash
我添加了'javascript'標記,缺乏這個標記解釋了爲什麼直到現在你還沒有得到任何答案。 – trincot