[typescript] 타입스크립트에서 프로미스 체이닝을 사용할 때 에러 핸들링은 왜 중요한가요?
프로미스 체이닝에서 각각의 프로미스가 이전 프로미스에서 발생한 에러를 잡아 처리하지 않으면, 전체 체인이 중단될 수 있습니다. 에러 핸들링은 이를 방지하여 체이닝된 작업 중 하나라도 실패해도 전체 작업 흐름이 계속되도록 합니다.
다음은 타입스크립트에서 프로미스 체이닝과 에러 핸들링을 함께 적용하는 간단한 예시입니다.
function fetchUser(): Promise<User> {
return fetch('/user').then(response => {
if (!response.ok) {
throw new Error('Failed to fetch user');
}
return response.json();
});
}
function fetchUserDetails(userId: number): Promise<UserDetails> {
return fetch(`/user/${userId}`).then(response => {
if (!response.ok) {
throw new Error('Failed to fetch user details');
}
return response.json();
});
}
fetchUser()
.then(user => fetchUserDetails(user.id))
.then(userDetails => {
// Use user details
})
.catch(error => {
// Handle any errors from the entire promise chain
console.error(error);
});
이 예시에서는 fetchUser
와 fetchUserDetails
함수가 프로미스를 반환하며, 각각의 프로미스에서 HTTP 요청이 실패할 경우 에러가 발생합니다. 마지막에 위치한 catch
블록은 전체 체이닝된 프로미스에서 발생한 에러를 처리합니다.
에러 핸들링은 안정적인 코드를 작성하고 사용자 경험을 향상시키는 데 필수적입니다.
참고 자료: