JavaScript
[JavaScript] Promise
newchocolate
2022. 5. 31. 23:41
728x90
반응형
Promise
자바스크립트의 내장 객체이며, 콜백함수를 대체하여 사용한다.
Promise.resolve(): 주어진 값으로 이행하는 Promise 객체를 반환
Promise.reject(): 거부된 이유를 반환
Producer
Promise의 인스턴스가 Producer이다.
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("hi");
// reject(new Error("에러 발생"));
}, 3000);
});
💡 새로운 Promise 인스턴스가 생성될때 executor가 자동적으로 실행된다.
Consumer
Promise 인스턴스의 메서드인 then, catch, finally가 Consumer이다.
promise
.then((value) => {
console.log(value); //resolve일 경우 "hi"
})
.catch((err) => {
console.log(err); //reject일 경우 "에러 발생"
})
.finally(() => {
console.log("finally 실행"); //resolve, reject 여부 상관없이 실행된다.
});
Promise.prototype.then():Promise를 리턴한다.
Promise.prototype.catch(): Promise를 리턴하며, then 과정 중에서 발생한 오류를 잡아낸다.
Promise.prototype.finally(): fulfilled, rejected와 상관 없이 실행하는 메서드
상태(State)
Promise 객체는 3가지 상태 중 하나의 상태를 갖는다.
- 대기(pending): 이행하지도 거부하지도 않은 초기 상태
- 이행(fulfilled): 연산이 성공적으로 완료됨
- 거부(rejected): 연산이 실패함
728x90
반응형