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);
}
위 예제에서 asyncFunction1
과 asyncFunction2
는 각각 비동기 함수입니다. Promise.all
을 사용하여 두 함수를 병렬로 실행하고 그 결과를 기다린 후에 원하는 작업을 처리할 수 있습니다.
순차적으로 여러 개의 비동기 함수 실행하기
여러 개의 비동기 함수를 순차적으로 실행하고 각 함수의 결과를 차례대로 사용해야 하는 경우에는 for...of
나 Array.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...of
나 Array.reduce
를 사용하여 각각의 상황에 맞게 처리할 수 있습니다.
이러한 방법을 응용하여 TypeScript 프로젝트에서 비동기 작업을 보다 효율적으로 처리할 수 있을 것입니다.
참고 자료
본 문서는 TypeScript에서 async/await를 사용한 여러 개의 비동기 작업 처리 방법에 대해 설명합니다.