const promise1 = Promise.resolve('성공1');
    const promise2 = Promise.resolve('성공2');
    Promise.all([promise1, promise2])
      .then((result) => {
        console.log(result); // ['성공1', '성공2'];
      })
      .catch((error) => {
        console.error(error);
      });

    Promise.resolve는 즉시 resolve하는 프로미스를 만드는 방법입니다. 비슷한 것으로 즉시 reject하는 Promise.reject도 있습니다. 프로미스가 여러 개 있을 때 Promise.all에 넣으면 모두 resolve될 때까지 기다렸다가 then으로 넘어갑니다. result 매개변수에 각각의 프로미스 결괏값이 배열로 들어 있습니다. Promise 중 하나라도 reject가 되면 catch로 넘어갑니다. 다만, 여러 프로미스 중 어떤 프로미스가 reject되었는지는 알 수 없습니다.

    정확히 어떤 프로미스에서 reject되었는지 알기 위해서는 Promise.all 대신 Promise.allSettled를 사용해야 합니다.

    const promise1 = Promise.resolve('성공1');
    const promise2 = Promise.reject('실패2');
    const promise3 = Promise.resolve('성공3');
    Promise.allSettled([promise1, promise2, promise3])
      .then((result) => {
        console.log(result);
    /* [
    *    { status: 'fulfilled', value: '성공1' },
    *    { status: 'rejected', reason: '실패2' },
    *    { status: 'fulfilled', value: '성공3' }
    *  ]
    */
      })
      .catch((error) => {
        console.error(error);
      });
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.