① Pending (대기)
new Promise(function(resolve, reject) { // ... });
new Promise()
메서드 호출 시 대기 상태가 된다.- 메서드 호출 시 콜백 함수를 선언할 수 있으며, 콜백 함수의 인자는
resolve
,reject
이다.② Fulfilled (완료)
new Promise(function(resolve, reject) { resolve(); });
- 콜백 함수의 인자
resolve
를 호출할 경우 완료(이행) 상태가 된다.function bringData() { new Promise(function(resolve, reject) { const data = 'crazy'; resolve(data); }); } // resolve()의 결과값인 data를 passedData로 받음 bringData().then(function(passedData) { console.log(passedData); })
- 완료 상태가 되면
then()
을 사용하여 비동기 처리된 결과값을 받을 수 있다.③ Rejected (실패)
new Promise(function(resolve, reject) { reject(); })
- 콜백 함수의 인자
reject
를 호출할 경우 실패 상태가 된다.function bringData() { return new Promise(function(resolve, reject) { reject(new Error('데이터를 가져오지 못하였습니다')); }) } // reject()의 결과값인 에러를 err로 받음 bringData().catch(function(err) { console.log(err); // Error: '데이터를 가져오지 못하였습니다' });
- 실패 상태가 되면
catch()
를 사용하여 실패 처리된 결과값을 받을 수 있다.