JavaScriptとnode.jsは初めてです。ディレクトリをループして、すべてのファイル統計(他のディレクトリではない)を配列に追加したいと思います。以下に示すように、forループが終了した後にコールバックが呼び出される可能性があるため、コードに問題があります。そのため、コールバックメソッドで「i」変数を使用しても機能しません。しかし、以下のスニペットが機能するように、コードはどのように見えるべきですか?それは閉鎖と関係がありますか?
手伝ってくれてありがとう!
fs.readdir(SYNCDIR, function(err1, files) {
var filesOnly = [];
if(!err1) {
for(var i = 0; i < files.length; i++) {
var imgFilePath = SYNCDIR + '/' + files[i];
fs.stat(imgFilePath, function(stat){
if (stat.isFile()){
filesOnly[i] = stat; // This will not be correct since the for-loop has finished
}
});
}
}
});