for문과 async/await을 같이 써서 프로미스를 순차적으로 실행할 수 있습니다. for문과 함께 쓰는 것은 노드 10 버전부터 지원하는 ES2018 문법입니다.

    const promise1 = Promise.resolve('성공1');
    const promise2 = Promise.resolve('성공2');
    (async () => {
      for await (promise of [promise1, promise2]) {
        console.log(promise);
      }
    })();

    for await of문을 사용해서 프로미스 배열을 순회하는 모습입니다. async 함수의 반환값은 항상 Promise로 감싸집니다. 따라서 실행 후 then을 붙이거나 또 다른 async 함수 안에서 await을 붙여서 처리할 수 있습니다.

    async function findAndSaveUser(Users) {
      // 생략
    }
    
    findAndSaveUser().then(() => { /* 생략 */ });
    // 또는
    async function other() {
      const result = await findAndSaveUser();
    }

    앞으로 중첩되는 콜백 함수가 있다면 프로미스를 거쳐 async/await 문법으로 바꾸는 연습을 해보길 바랍니다. 코드가 훨씬 간결해질 것입니다. 이 책의 예제는 async/await 문법을 적극적으로 사용하므로 익숙해지는 것이 좋습니다.

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