[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 메서드를 사용하여 프로미스 체이닝 도중에 발생한 에러를 처리하고 다른 함수에게 넘겨줄 수 있습니다.