여러 디렉토리를 반복하여 그 디렉토리 내의 파일이 NodeJS 및 fs.stat()와 함께 존재하는 경우 시도합니다.FOR 루프에서 NodeJS - fs.stat()가 무시됩니다.
나는 그 특정 디렉토리 안에 "project.xml"이 있는지 확인하기 위해 fs.stat() 호출을 통해 디렉토리를 반복하는 간단한 for-loop를 가지고있다. 내 코드는 다음과 같습니다
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()
내부 if
에 else
을 추가) fs.stat()
실제로 가가 호출됩니다 것을, 저를 보였으 나있는 내부 코드 만 if
이 실행 중이 아니며 else
에 코드가 추가 된 경우 은 실행 중입니다.
미리 감사드립니다.
빠른 수정은'var' 대신'let'을 사용하는 것이지만 궁극적으로는 비동기 함수 호출을 읽는 것이 좋습니다. – robertklep