[typescript] 타입스크립트에서 프로미스 체이닝 도중에 발생한 에러를 다른 함수에게 넘겨주려면 어떻게 해야 하나요?
아래 예시를 통해 설명해보겠습니다.
function fetchUserData(): Promise<User> {
return fetch('https://api.example.com/user')
.then(response => {
if (!response.ok) {
throw new Error('Failed to fetch user data');
}
return response.json();
});
}
function processUserData(userData: User): void {
// process the user data
}
fetchUserData()
.then(processUserData)
.catch((error) => {
console.error('Error while fetching user data:', error);
// handle the error or pass it to another function
handleFetchError(error);
});
function handleFetchError(error: Error): void {
// handle and/or rethrow the error
}
위 예시에서 fetchUserData
함수는 사용자 데이터를 가져오는 프로미스를 반환합니다. 이후 .then(processUserData)
으로 성공했을 때 데이터를 처리하는 함수를 연결하고, .catch
로 데이터를 가져오는 도중 발생한 에러를 핸들링하거나 다른 함수에게 넘겨줄 수 있습니다. 여기서 handleFetchError
함수에서 에러를 처리하거나 다른 함수로 넘겨줄 수 있습니다.
이와 같이 catch
메서드를 사용하여 프로미스 체이닝 도중에 발생한 에러를 처리하고 다른 함수에게 넘겨줄 수 있습니다.