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으로 어느 정도 해결할 수 있습니다.

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