私が行っているプロジェクトでは、ファイルとその内容に基づいてツリーモデルを構築する関数があります。私の解析ファイル関数は再帰的であり、ディレクトリツリー内で深く進むことができない/それ以上のファイルを含んでいないファイルをヒットしなくなるまで、自己呼び出しを続けます。しかし、再帰的なので、私はこの関数のコールバックを設定する方法を知らない。現時点では、私は自分のコンストラクトツリーメソッドをタイムアウトしていますが、これは私の問題に対する恐ろしい信頼できない解決策です。ここに私のコードです:回帰的再帰的メソッドのコールバック?
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);
}
}
});
}
このコードは "ひどく恐ろしく"です。ディレクトリ全体を検索したかどうか、またはこれを正しく行う方法を決定する方法はわかりません。私はこれをうまく説明してくれればと思う!ありがとうございました、そして、どんなヘルプもappricatedです!
コールバック関数とはどういう意味ですか? – prabodhprakash
私は 'javascript'タグを追加しました。なぜなら、これまでに何の答えも得られなかった理由が不足しているからです。 – trincot