[typescript] async/await와 함께 사용할 수 있는 다른 비동기 패턴
비동기 프로그래밍은 JavaScript 및 TypeScript와 같은 언어에서 매우 일반적입니다. 이 문서에서는 TypeScript의 async/await와 함께 사용할 수 있는 다양한 비동기 패턴을 살펴보겠습니다.
Promise와 async/await
비동기 코드를 작성할 때 가장 많이 사용되는 패턴 중 하나는 Promise입니다. async/await는 이러한 Promise 기반의 비동기 코드를 더욱 쉽게 작성할 수 있게 하는 기능입니다.
async function fetchData() {
return await fetch('https://api.example.com/data');
}
Parallel Promise 처리하기
여러 개의 Promise를 병렬로 처리하고, 모든 작업이 완료될 때까지 기다리려면 Promise.all
메서드를 사용할 수 있습니다.
async function fetchAndProcessData() {
const [userData, productData] = await Promise.all([
fetch('https://api.example.com/users'),
fetch('https://api.example.com/products')
]);
// 데이터 처리 로직
}
Sequential한 Promise 처리하기
여러 개의 Promise를 순차적으로 처리하려면 for...of
루프와 async/await를 활용할 수 있습니다.
const urls = ['one', 'two', 'three'];
async function fetchSequentially() {
for (const url of urls) {
const response = await fetch(`https://api.example.com/${url}`);
// 데이터 처리 로직
}
}
비동기 코드 예외 처리
try...catch
블록을 사용하여 async/await를 통해 발생하는 예외를 처리할 수 있습니다.
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.log('Error fetching data:', error);
}
}
요약
이 문서에서는 TypeScript의 async/await와 함께 사용할 수 있는 Promise 기반의 다양한 비동기 패턴에 대해 알아보았습니다. 이러한 패턴을 적절히 활용하여 코드를 더욱 간결하고 가독성 있게 작성할 수 있습니다.
더 많은 정보는 MDN web docs - async/await를 참고하세요.