더북(TheBook)

2.1.8 async/await

노드 7.6 버전부터 지원되는 기능으로, ES2017에서 추가되었습니다. 알아두면 정말 편리한 기능이며, 특히 노드처럼 비동기 위주로 프로그래밍을 해야 할 때 도움이 많이 됩니다.

프로미스가 콜백 지옥을 해결했다지만, 여전히 코드가 장황합니다. thencatch가 계속 반복되기 때문입니다. async/await 문법은 프로미스를 사용한 코드를 한 번 더 깔끔하게 줄입니다.

2.1.7절의 프로미스 코드를 다시 한 번 보겠습니다.

function findAndSaveUser(Users) {
  Users.findOne({})
    .then((user) => {
      user.name = 'zero';
      return user.save();
    })
    .then((user) => {
      return Users.findOne({ gender: 'm' });
    })
    .then((user) => {
      // 생략
    })
    .catch(err => {
      console.error(err);
    });
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.