Blocking과 Non-Blocking
Node.js 프로세스에서 JavaScript를 실행할 때 JavaScript가 아닌 작업이 완료될 때까지 기다려하는 경우이다.
이벤트 루프가 Blocking작업이 발생하는 동안 JavaScript를 계속 실행할 수 없기 때문에 발생한다.
Node.js 표준 라이브러리의 모든 I/O 메서드는 비동기를 제공한다. Non-Blocking이며, 콜백함수를 허용한다.
Blocking되는 메서드들도 있다.
const fs = require('node:fs');
const data = fs.readFileSync('/file.md');
moreWork()
// 파일이 읽어질 때까지 블로킹
비동기로 실행되게 하기 위해서는 다음과 같이 해야 한다.
const fs = require('node:fs');
fs.readFile('/file.md', (err, data) => {
if (err) throw err;
console.log(data);
});
moreWork();
참고
Last updated