2.1.8 async/await
노드 7.6 버전부터 지원되는 기능으로, ES2017에서 추가되었습니다. 알아두면 정말 편리한 기능이며, 특히 노드처럼 비동기 위주로 프로그래밍을 해야 할 때 도움이 많이 됩니다.
프로미스가 콜백 지옥을 해결했다지만, 여전히 코드가 장황합니다. then과 catch가 계속 반복되기 때문입니다. 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); }); }