프로미스 정적메서드-2

박경찬·2022년 7월 27일
0

JavaScript

목록 보기
21/26

Promise.race
Promise.race 메서드는 Promise.all 메서드와 동일하게 프로미스 요소를 갖는 배열드의 이터러블을 인수로 전달 받는다.
이말은 즉 fulfilled 상태가 되는 것을 기다리는 것이 아니라 가장 먼저 fulfilled 상태가 된 프로미스의 처리 결과를 resolve 하는 새로운 프로미스를 반환한다.


Promise.race([
  new Promise((resolve) => setTimeout(() => resolve(1), 3000)),
  new Promise((resolve) => setTimeout(() => resolve(2), 2000)),
  new Promise((resolve) => setTimeout(() => resolve(3), 1000)),
])
  .then(console.log) // 3
  .catch(console.log);
])

Promise.race([
  new Promise((_,reject) => setTimeout(() => resolve("Error 1"), 3000)),
  new Promise((_,reject) => setTimeout(() => resolve("Error 2"), 2000)),
  new Promise((_,reject) => setTimeout(() => resolve("Error 3"), 1000)),
])
  .then(console.log)
  .catch(console.log); // Error 3
])

Promise.all 동일하게 reject상태가 되면 에러를 전달하는 reject하는 프로미스를 즉시 반환한다.

0개의 댓글