ディレクトリの束をループして、そのディレクトリ内のファイルがNodeJSとfs.stat()で存在するかどうか試してみます。FORループでNodeJS - fs.stat()が無視される
私は、ディレクトリ上でループするための単純なループを持っており、fs.stat()呼び出しでその特定のディレクトリ内の "project.xml"が存在するかどうかを確認します。私のコードは次のようになります。
for (var i = 0, length = prDirs.length; i < length; i++) {
var path = Config["ProjectDirectory"] + "/" + prDirs[i];
console.log("PATH=" + path);
fs.stat(path + "/project.xml", function (err, stat) {
if (err == null) {
console.log(" => PATH=" + path);
}
})
}
NodeJSは、ディレクトリ上で正しくループし、console.log()
出力全て正しくディレクトリが、内のコード内のfs.statは()と呼ばれ、最後に一度だけ実行されていない場合ループの私のコンソールはこれを示しています
PATH=(...)/PHP
PATH=(...)/Electron
PATH=(...)/testapp
PATH=(...)/Vala
=> PATH=(...)/Vala/project.xml
は、しかし、私が探しているのproject.xmlはVala/
にないtestapp/
であるが、Vala/
はprDirs
の最後のエントリです。
上記のコードは私の最新の試みですが、私はfs.stat()
が実際にが呼び出されることを、私を示したが、内部のコードだけ(私はfs.stat()
内部if
へelse
を追加)他のバリエーションと1の多くを試してみましたif
が実行されておらず、else
のコードが一度追加されました。は、実行中はでした。
ありがとうございます!
すぐに修正するには、 'var'の代わりに' let'を使うことですが、最終的には非同期関数呼び出しを読む価値があります。 – robertklep