Promise.all()

민겸·2022년 10월 21일
0

JavaScript

목록 보기
9/20
post-thumbnail

이 글은 공식문서 MDN을 기반으로 작성되었습니다.

Promise.all 이란

Promise.all은 한 번에 하나의 반환값만을 가지는 Promise로 여러 개의 연속적인 비동기 결과를 얻어낼 때 유용하게 사용할 수 있는 메서드이다. 일반적으로 다음 코드를 실행하기 전 연관된 비동기 작업들이 모두 끝나야 하는 경우 묶어서 사용한다.

A Promise와 B Promise를 하나로 묶어서 비동기 작업을 실행할 수 있게 되는데, A가 성공해도 B가 실패하면 Promise.all은 거부된다. 여기서 Promise.allSettled()를 사용하면 성공/실패 여부에 상관없이 주어진 Promise가 모두 완료될 때까지 기다리고 완료된다면 모든 Promise의 결과값을 반환한다.

사용법은 간단하다.

여러 개의 Promise들이 있다면, 배열에 담아서 Promise.all()의 인자로 넣어주면 된다.
예시는 아래와 같다.

const a = Promise.resolve(4);
const b = 15;
const c = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve("resolve!");
  }, 1000);
});

Promise.all([a, b, c]).then((result) => {
  console.log(result);
});
결과: [4, 15, "resolve!"]

Promise가 아닌 값이 들어있다면 무시는 하지만, 리턴 배열에는 포함된다.
Promise.all은 기본적으로 비동기적으로 작동하지만, 주어진 인자가 빈 경우엔 동기적으로 작동한다.

profile
기술부채상환중...

0개의 댓글