더북(TheBook)

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번 저를 여러 번 읽어보세요.
끝

콜백 지옥은 Promiseasync/await으로 어느 정도 해결할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.