TypeScript를 사용하다 보면 네트워크 요청이나 파일 읽기와 같은 비동기 작업을 수행해야 하는 경우가 있습니다. 이러한 작업을 수행할 때는 성공 또는 실패에 대한 처리 방법을 알고 있어야 합니다. 이 블로그 포스트에서는 TypeScript에서의 비동기 작업에 대한 성공/실패 처리 방법에 대해 알아보겠습니다.
1. Promise를 사용한 비동기 작업
TypeScript에서 비동기 작업은 대부분 Promise
를 사용하여 처리됩니다. Promise
는 비동기 작업의 성공 또는 실패를 다루기 위한 객체입니다. 일반적으로 비동기 함수는 Promise
객체를 반환하고, 이를 통해 비동기 작업의 성공과 실패를 처리할 수 있습니다.
아래는 Promise
를 사용하여 비동기 작업을 수행하고 성공과 실패를 처리하는 예제 코드입니다.
function fetchData(): Promise<string> {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
if (/* 성공 조건 */) {
resolve('데이터 가져오기 성공');
} else {
reject(new Error('데이터 가져오기 실패'));
}
});
}
// 비동기 작업 수행 후 성공과 실패 처리
fetchData()
.then((data) => {
console.log(data); // 성공 시 처리 로직
})
.catch((error) => {
console.error(error); // 실패 시 처리 로직
});
2. async/await를 사용한 비동기 작업
async/await
는 ES2017부터 지원되는 기능으로, Promise
를 좀 더 간결하고 직관적으로 사용할 수 있게 해줍니다. async
함수 내에서 await
키워드를 사용하여 비동기 작업의 완료를 기다릴 수 있고, 작업의 성공과 실패를 간편하게 처리할 수 있습니다.
아래는 async/await
를 사용하여 비동기 작업을 수행하고 성공과 실패를 처리하는 예제 코드입니다.
async function fetchData(): Promise<void> {
try {
const data = await fetchDataFromApi(); // 비동기 작업 수행
console.log(data); // 성공 시 처리 로직
} catch (error) {
console.error(error); // 실패 시 처리 로직
}
}
async/await
를 활용하면 비동기 작업의 성공과 실패를 처리하는 코드가 보다 간결해지고 가독성이 좋아집니다.
TypeScript에서의 비동기 작업에 대한 성공/실패 처리를 위해 Promise
와 async/await
를 적절히 활용하면 가독성이 좋은 코드를 작성할 수 있습니다.
이렇게 TypeScript에서의 비동기 작업에 대한 성공/실패 처리 방법을 알아보았습니다. 다양한 상황에 맞게 Promise
나 async/await
를 적절히 활용하여 비동기 작업을 처리할 수 있습니다.
참고 문헌: MDN Web Docs - Promise, MDN Web Docs - async function