티스토리 뷰
자바스크립트 안에 내장되어있는 오브젝트
비동기적인 것을 수행 할 때 콜백 대신 유용하게 사용
state 상태
pending-> fulfilled or rejected
producer
producer
프로미스는 클래스
새로운 프로미스가 만들어질 때 전달한 excutor 바로 실행됨
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('bomi');
},2000);
});
resolve
기능을 정상적으로 수행해서 마지막으로 최종데이터를 전달
reject
기능을 수행하다 중간에 문제가 생기면 호출
consumer: then, catch, finally
finally
성공과 실패를 떠나 무조건 호출 됨
promise.then(value => {
});
async
깔끔하게 프로미스 사용
async function fetchUser() {
return 'bomi';
}
const user = fetchUser();
console.log(user);
await
async function 안에서만 사용가능
function delay(ms) {
return new Promise(resolve = > setTimeout(resolve, ms));
}
async funcrion getApple() {
await delay(3000);
return "apple";
}
async function getBanana () {
await delay(3000);
return "banana";
}