Promise는 자바스크립트 비동기 처리에 사용되는 객체이다.
이를 사용하면 비동기 작업이 종료된 이후의 성공 결괏값이나 실패에 대하여 처리할 수 있다.
Promise는 다음 중 하나의 상태를 가진다.
function promise(name) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (name === "sangbin") {
resolve(name);
} else {
reject(new Error("who are you"));
}
}, 2000);
});
}
new Promise() 객체를 생성하여 리턴해주고, resolve와 reject라는 콜백함수를 인수로 넘겨준다.
이를 excutor라고 부르며, 자바스크립트에서 자체 제공하는 콜백이다.
연산이 성공적으로 완료되면 .then() 의 콜백함수가 실행되고,
연산이 실패하면 catch() 의 콜백함수가 실행된다.
promise("sangbin")
.then((name) => console.log(name))
.catch((err) => console.log(err));
// sangbin
promise("123")
.then((name) => console.log(name))
.catch((err) => console.log(err));
// who are you