[TIL]231103_Promise.All

VonBielefeld·2023년 11월 2일
0

TIL

목록 보기
9/32

Promise.all()

Promise.all() 메서드는 순회 가능한 객체에 주어진 모든 프로미스가 이행한 후, 혹은 프로미스가 주어지지 않았을 때 이행하는 Promise를 반환합니다. 주어진 프로미스 중 하나가 거부하는 경우, 첫 번째로 거절한 프로미스의 이유를 사용해 자신도 거부합니다.

매개변수

iterable 객체

반환값

  • 매개변수로 주어진 순회 가능한 객체가 비어 있으면 이미 이행한 Promise.
  • 객체에 프로미스가 없으면, 비동기적으로 이행하는 Promise
  • 그렇지 않은 경우, 대기 중인 Promise. 결과로 반환하는 프로미스는 인자의 모든 프로미스가 이행하거나 어떤 프로미스가 거부할 때 (호출 스택이 비는 즉시) 비동기적으로 이행/거부합니다.

정리

  • 여러개의 비동기처리를 할 때 사용을 한다.

  • 예를들면 3개의 비동기 처리 요청을 할 떄 1초 / 3초/ 2초가 걸린다고 가정하면 따로 각각 비동기 요청을 하게 되면 1초 + 3 초+ 2초 === 6초가 걸린다. 하지만 Promise.all()로 한 번에 요청을 하게되면 가장 긴 3초와 비슷한 시간으로 끝이 난다.

  • Promise.all()함수가 정상적으로 종료되면 모든 비동기 요청이 정상적으로 끝이난 것이지만, 1개라도 비동기요청에서 reject이 되면 첫 번째 거부사유만 반환한다. 혹시나 에러가 많이 나면 찾기 힘들 수 있다.

0개의 댓글