📚 Reference
📜 Chapter
Promise.race()
static method takes an iterable of promises as input and returns a single Promise
. This returned promise settles with the eventual state of the first promise that settles.var p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('하나'), 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('둘'), 2000);
});
var p3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('셋'), 3000);
});
var p4 = new Promise((resolve, reject) => {
setTimeout(() => resolve('넷'), 4000);
});
Promise.race([p1, p2, p3, p4, p5])
.then(value => {
console.log(value);
});
// 콘솔 출력값:
// "하나"
위의 코드에서 보면 가장 빨리 실행이 완료된 p1의 result인 '하나'만 콘솔에 찍힌 것을 확인할 수 있다.
예시 2
var p1 = new Promise((resolve, reject) => {
setTimeout(() => reject('하나'), 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(() => reject('둘'), 2000);
});
var p3 = new Promise((resolve, reject) => {
setTimeout(() => reject('셋'), 3000);
});
var p4 = new Promise((resolve, reject) => {
setTimeout(() => reject('넷'), 4000);
});
Promise.race([p1, p2, p3, p4, p5])
.then(value => {
console.log(value);
})
.catch(error=>{
console.log("error",error);
});
// 콘솔 출력값:
// error 하나