0
내 코드에서 다중 약속을 사용하려면 어떻게해야합니까? 내가 두 번째 약속에 대한 두 번째 await를를 사용하고 싶어 할 때 당신이 볼 경우nodejs 여러 약속 사용 방법
function ReadJSONFile() {
return new Promise((resolve, reject) => {
fs.readFile('import.json', 'utf-8', (err, data) => {
if (err) reject(err);
resolve(JSON.parse(data));
});
});
}
const Get_Image = async (Path) => {
Child_Process = exec('node get_image.js "'+Path+'",(err,stdout,stderr) =>
return new Promise((resolve,reject) => {
resolve(stdout);
});
}
const Catch = async() => {
let get_json_file = await ReadJSONFile(); // this works perefectly
for(var i=0;i< Object.keys(get_json_file);i++) {
console.log(await Get_Image(get_json_file[i].image_path); //but this throw error
}
}
을 가지고 왜 약속을 반환하지만 돌아가신't 오류가 발생 내 코드, 나는 값으로 새로운 약속을 반환했습니다. 차이점은 무엇입니까? 당신은 내가 반환 한 모든 자식 프로세스를 반환했습니다. 왜 이것이 올바르지 않습니까? –
당신은 아무 것도 반환하지 않을 때 당신이 약속하지 않은 값을 반환합니다. exec 함수가 비동기이면 콜백을 사용하므로이 함수의 반환 값이 동기화 코드에서 오랫동안 사라 졌음을 의미합니다. 약속과 함께 작동 keywork을 기다리고 있습니다 –
난, 감사합니다 –