[typescript] async/await를 사용한 여러 개의 비동기 작업 처리 방법

TypeScript에서 async/await를 사용하면 비동기 작업을 보다 간단하게 처리할 수 있습니다. 때때로 여러 개의 비동기 작업을 처리해야 하는 경우가 있습니다. 이때 async/await를 효율적으로 사용하여 여러 개의 비동기 작업을 처리하는 방법에 대해 알아보겠습니다.

병렬로 여러 개의 비동기 함수 실행하기

여러 개의 비동기 함수를 병렬로 실행하고 그 결과를 기다려야 하는 경우가 있습니다. Promise.all을 사용하여 이러한 작업을 간단하게 처리할 수 있습니다.

async function parallelAsyncFunctions() {
  const result1 = asyncFunction1();
  const result2 = asyncFunction2();
  const [awaitedResult1, awaitedResult2] = await Promise.all([result1, result2]);
  console.log(awaitedResult1, awaitedResult2);
}

위 예제에서 asyncFunction1asyncFunction2는 각각 비동기 함수입니다. Promise.all을 사용하여 두 함수를 병렬로 실행하고 그 결과를 기다린 후에 원하는 작업을 처리할 수 있습니다.

순차적으로 여러 개의 비동기 함수 실행하기

여러 개의 비동기 함수를 순차적으로 실행하고 각 함수의 결과를 차례대로 사용해야 하는 경우에는 for...ofArray.reduce를 사용하여 처리할 수 있습니다.

async function sequentialAsyncFunctions() {
  const results: Result[] = [];
  for (const asyncFunction of asyncFunctions) {
    const result = await asyncFunction();
    results.push(result);
  }
  console.log(results);
}

위 예제에서 asyncFunctions는 여러 개의 비동기 함수들을 담고 있는 배열이라고 가정합니다. for...of를 사용하여 각 함수를 순차적으로 실행하고 그 결과를 배열에 담은 후에 원하는 작업을 처리할 수 있습니다.

결론

TypeScript에서 async/await를 사용하여 여러 개의 비동기 작업을 효율적으로 처리할 수 있습니다. 병렬로 실행해야 하는 경우에는 Promise.all을, 순차적으로 실행해야 하는 경우에는 for...ofArray.reduce를 사용하여 각각의 상황에 맞게 처리할 수 있습니다.

이러한 방법을 응용하여 TypeScript 프로젝트에서 비동기 작업을 보다 효율적으로 처리할 수 있을 것입니다.

참고 자료


본 문서는 TypeScript에서 async/await를 사용한 여러 개의 비동기 작업 처리 방법에 대해 설명합니다.