Promise
Promise의 상태
Promise.prototype.then(onFulfilledCallback, onRejectedCallback)Promise.prototype.catch(onRejectedCallback)Promise 생성 방법
더 간단한 예제
그 외 메소드들
Promise.race 예제
Last updated
Promise.prototype.then(onFulfilledCallback, onRejectedCallback)Promise.prototype.catch(onRejectedCallback)Last updated
function post(uriParams, body) {
return new Promise((resolve, reject) =>
fetch(`${BASE_URL}/${uriParams}`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(body)
}).then(res => res.json())
.then(res => resolve(res))
.catch(err => reject(err))
);
}//call
post(${url}, {boseok: 'fe'}).then(res => {...});const myPromise = () => {
return new Promise(resolve => {
setTimeout(() => {
resolve('2second');
}, 2000);
});
};
myPromise()
.then(res => console.log('myPromise', res))Promise.all(iterable)
/*
iterable 내의 모든 프로미스가 이행한 뒤 이행하고, 어떤 프로미스가 거부하면 즉시 거부하는 프로미스를 반환합니다.
이 말은 reject가 있으면 reject를 반환하고, resolve되면 resolve된 값들을 배열로 반환한다는 의미입니다.
이 메서드는 여러 프로미스의 결과를 모을 때 유용합니다.
아래 예제가 있습니다.
*/
Promise.race(iterable)
//iterable 내의 어떤 프로미스가 이행하거나 거부하는 즉시 스스로 이행하거나 거부하는 프로미스를 반환합니다.
// 예를 들어, 프로미스가 여러개있을때 어떤 프로미스가 작업이 끝나면, 다른 프로미스들은 resolve 혹은 reject 되지않는다는 의미입니다. 이걸 활용하면 프로미스에 타임아웃을 구현할수있습니다.
Promise.reject(reason)
//주어진 이유로 거부하는 Promise 객체를 반환합니다.
Promise.resolve(value)
/*
주어진 값으로 이행하는 Promise 객체를 반환합니다.
*/const p1 = () => new Promise(resolve => {
console.log('p1');
setTimeout(()=>{
resolve('p1 resolved');
}, 1000);
});
const p2 = () => new Promise(resolve => {
console.log('p2');
setTimeout(()=>{
resolve('p2 resolved');
}, 2000);
});
const result = Promise.race([p1(), p2()]).then(console.log);p1
p2
p1 resolved