3.6.1 동기 메서드와 비동기 메서드
setTimeout 같은 타이머와 process.nextTick 외에도, 노드는 대부분의 메서드를 비동기 방식으로 처리합니다. 하지만 몇몇 메서드는 동기 방식으로도 사용할 수 있습니다. 특히 fs 모듈이 그러한 메서드를 많이 갖고 있습니다. 어떤 메서드가 동기 또는 비동기 방식으로 동작하고 언제 어떤 메서드를 사용해야 하는지를 알아보겠습니다.
파일 하나를 여러 번 읽어보겠습니다.
readme2.txt
저를 여러 번 읽어보세요.
async.js
const fs = require('fs');
console.log('시작');
fs.readFile('./readme2.txt', (err, data) => {
if (err) {
throw err;
}
console.log('1번', data.toString());
});
fs.readFile('./readme2.txt', (err, data) => {
if (err) {
throw err;
}
console.log('2번', data.toString());
});
fs.readFile('./readme2.txt', (err, data) => {
if (err) {
throw err;
}
console.log('3번', data.toString());
});
console.log('끝');
같은 파일을 세 번 읽었습니다. 실행하기 전에 콘솔 결과를 예측해보세요.