[typescript] 타입스크립트에서 `Promise.all()` 메소드를 사용하여 여러 프로미스를 병렬로 처리한 후 결과를 어떻게 처리할 수 있나요?

먼저, Promise.all()은 여러 프로미스를 배열로 받아들이고, 해당 프로미스들이 모두 이행될 때 전체 프로미스를 이행시킵니다. 만약 배열에 전달된 프로미스 중 하나라도 거부된 경우, Promise.all()은 첫 번째 거부된 프로미스의 이유와 결과를 반환합니다.

아래는 Promise.all()을 사용하여 여러 프로미스를 병렬로 처리한 후 결과를 처리하는 간단한 예제입니다.

const promise1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise 1 resolved');
  }, 1000);
});

const promise2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise 2 resolved');
  }, 2000);
});

const promise3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject('Promise 3 rejected');
  }, 1500);
});

Promise.all([promise1, promise2, promise3])
  .then((results) => {
    console.log('All promises resolved:', results);
  })
  .catch((error) => {
    console.log('Promise rejected:', error);
  });

위의 예제에서는 promise1, promise2, promise3 세 개의 프로미스를 생성하고 배열에 담아 Promise.all()에 전달했습니다. 그 다음에는 then() 메소드를 사용하여 모든 프로미스가 이행될 때 결과를 처리하고, catch() 메소드를 사용하여 거부된 경우의 처리를 정의했습니다.

위의 코드를 실행하면 promise3가 거부되었기 때문에 catch() 블록이 실행되고, 에러 메시지가 출력됩니다.

이와 같이 Promise.all()을 사용하면 여러 프로미스를 병렬로 처리한 후에 각각의 결과를 한꺼번에 처리할 수 있습니다.