프라미스 API

Promise.all() - JavaScript | MDN

개요


Promise.all([
  new Promise((resolve, reject) => setTimeout(() => resolve(1), 1000)),
  new Promise((resolve, reject) => setTimeout(() => reject(new Error("에러 발생!")), 2000)),
  new Promise((resolve, reject) => setTimeout(() => resolve(3), 3000))
]).catch(alert); // Error: 에러 발생!

사용예시)

Promise.all([
  new Promise(resolve => setTimeout(() => resolve(1), 3000)), // 1
  new Promise(resolve => setTimeout(() => resolve(2), 2000)), // 2
  new Promise(resolve => setTimeout(() => resolve(3), 1000))  // 3
]).then(alert); // [1, 2, 3] 각 Promise의 위치배열로 알맞은 index에 각각의 결과값이 반환된다.
//예) 첫번째 자리는 promise 1의 결과값이 들어간다.
Promise.all([
  new Promise((resolve, reject) => {
    setTimeout(() => resolve(1), 1000)
  }),
  2,
  3
]).then(alert); // 1, 2, 3
//Promise 가 아닌 일반값을 넣으면 그대로 해당 index의 위치로 값이 도출된다.