asyncOrder.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('끝');
});
});
});
이전 readFile의 콜백에 다음 readFile을 넣으면 됩니다. 이른바 ‘콜백 지옥’이 펼쳐지지만 적어도 순서가 어긋나는 일은 없습니다.
콘솔
$ node asyncOrder
시작
1번 저를 여러 번 읽어보세요.
2번 저를 여러 번 읽어보세요.
3번 저를 여러 번 읽어보세요.
끝
콜백 지옥은 Promise나 async/await으로 어느 정도 해결할 수 있습니다.