// new Promise가 생성이 되면 자동으로 실행된다 !!
const promise = new Promise((resolve, reject) => {
// doing some heavy work (네트워크통신, get)
console.log('doing')
setTimeout(() => {
resolve('star');
}, 2000)
})
promise.then(value => {
console.log(value); // 성공적으로 받아 올 경우
.catch(error => { // 에러 처리
console.log(error);
})
})
reject를 아래와 같이 호출하면 실패(Rejected) 상태가 된다.
function getData() {
return new Promise(function(resolve, reject) {
reject(new Error("Request is failed"));
});
}
// reject()의 결과 값 Error를 err에 받음
getData().then().catch(function(err) {
console.log(err); // Error: Request is failed
});
Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
Fulfilled(이행) : 비동기 처리가 완료되어 프로미스가 결과 값을 반환해준 상태
Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태