일부 개발자의 경우 node.js execFileSync 함수가 비동기로 실행되고 가 아닌 동기식으로 문제가 발생합니다. 우리는 이것이 문제가있는 기계와 원인을 찾을 수 없었던 기계 사이의 환경 적 차이에 기인한다고 생각합니다. 이전에 경험 한 사람이 있습니까?execFileSync asyncronously
다음은 간단한 예입니다. 이 코드 블록에 대한 호출이 여러 번 있습니다. 실행 사이에 정리 작업을 수행하기 위해 외부 스크립트를 호출해야하기 때문에 코드가 스크립트가 완료 될 때까지 기다리지 않고 계속해서 스크립트를 실행할 수 있습니다. 연속적으로가 아니라 한 번에 여러 번 실행됩니다.
execFileSync(batchPath, {stdio:[0,1,2]}, function(error, stderr, stdout) {
console.log(stderr);
console.log(stdout);
if (error !== null) {
console.log('exec error: ', error);
}
});
어떤 문제가 발생했는지에 대해 감사드립니다.
* 동기 * 메서드에 콜백을 전달하는 이유는 무엇입니까? – mscdex
그것은 원래 코드가 아니지만 왜 그렇게했는지 말할 수는 없습니다. 다른 출력을 시도하고 처리했을 수도 있습니다. – Anto
실제로 어떤 값이'execFileSync'에 실제로 할당되었는지에 따라 실제로 비동기 인'execFile'을 사용할 수 있습니다. '* Sync' 함수는 콜백을 받아들이지 않습니다. 대신 * 출력을 리턴합니다. – mscdex