그래서 항상 이점이 있는지 궁금해했습니다. 아래에 예제를 제공 할 것입니다. 약속에 싸여비동기 함수가 약속 함수와 동기화 함수에 랩 됨
비동기 기능 :
(async() => {
await new Promise((resolve, reject) => {
fs.writeFile(filePath, dataToWrite, (error) => {
if (error) {
reject(error);
return;
}
resolve();
});
});
})();
동기 기능 :
(() => {
fs.writeFileSync(filePath, dataToWrite);
})();
나는 빛 독서 알고있는 유일한 방법은 동기 함수 호출 블록 프로세스가 완료 될 때까지이다. 예를 들어 api 엔드 포인트가있는 웹 서버는 동기 기능이 완료 될 때까지 이러한 요청을 처리 할 수 없습니다. 이것은 약속에 싸여있는 비동기 함수에서도 마찬가지입니까? 두 사람 사이에 차이가 있다면 그렇게 설명 할 수 있습니까?
비동기 함수 자체가 비 차단 약속을 반환합니다. – mehulmpt
예제에서 아무 것도 기다리지 않는 코드가 없으므로 전혀 차이가 없습니다. 또한 IIFE로 포장하는 이유는 무엇입니까? – Bergi
내가 잘못하지 않으면 writeFileSync가 차단되고 디스크/파일 시스템에 파일을 쓰는 작업이 완료 될 때까지 기다려야합니다. – Veve