2.1.7 프로미스
자바스크립트와 노드에서는 주로 비동기를 접합니다. 특히 이벤트 리스너를 사용할 때 콜백 함수를 자주 사용합니다. ES2015부터는 자바스크립트와 노드의 API들이 콜백 대신 프로미스(Promise) 기반으로 재구성되며, 악명 높은 콜백 지옥(callback hell) 현상을 극복했다는 평가를 받고 있습니다. 프로미스는 반드시 알아둬야 하는 객체이므로 이 책뿐만 아니라 다른 자료들을 참고해서라도 반드시 숙지해야 합니다.
프로미스는 다음과 같은 규칙이 있습니다. 먼저 프로미스 객체를 생성해야 합니다.
const condition = true; // true이면 resolve, false이면 reject const promise = new Promise((resolve, reject) => { if (condition) { resolve('성공'); } else { reject('실패'); } }); // 다른 코드가 들어갈 수 있음 promise .then((message) => { console.log(message); // 성공(resolve)한 경우 실행 }) .catch((error) => { console.error(error); // 실패(reject)한 경우 실행 }) .finally(() => { // 끝나고 무조건 실행 console.log('무조건'); });