Node와 함께 async/await에 문제가 있습니다. 내가 이것을 시도하면 :비동기 함수의 결과가 정의되지 않음을 나타냅니다.
function Read_Json_File() {
fs.readFile('import.json','utf-8',(err, data) => {
if (err) throw err;
json_data = JSON.parse(data);
return json_data;
});
}
async function run_demo() {
let get_json_file = await Read_Json_File();
console.log(get_json_file);
}
run_demo();
그것은 JSON 대신에 파일에서 정의를 반환합니다. 파일 읽기가 끝나기를 기다리지 않는 이유는 무엇입니까?
그래 지금은 꿈 덕분처럼 작동하지만 난 약속을 사용하지 않고 비동기/await를 사용할 수 있습니다 들었 –
@OFSTTP 약속 *을 기다리고 있습니다. Async/await은 약속을위한 문법적 설탕입니다. 일단 비등 시키면 async/await은 단지 약속 일 뿐이므로 비동기 코드를 동 기적으로 실행할 수는 없습니다. 어느 정도 약속을 사용해야하며, 비동기/대기 기능은 결국 더 많은 약속이됩니다. – Li357
@OFSTTP 참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await –