[typescript] 프로미스 체이닝에서 중간에 에러가 발생하면 어떻게 처리되는지 알려주세요.

일반적으로 프로미스 체이닝에서 중간에 에러가 발생하면, 해당 에러는 현재의 체이닝 프로미스에서 rejected 상태로 전파됩니다. 이때, 체이닝 중에 에러가 발생하면 해당 프로미스는 rejected 상태가 되고, 이후의 체이닝은 실행되지 않습니다.

에러를 처리하기 위해 프로미스 체이닝에서는 catch 메서드를 사용할 수 있습니다. catch 메서드는 이전에 발생한 에러를 처리하고 다시 resolved 상태로 변경할 수 있습니다. 이를 통해 프로미스 체이닝에서 에러를 적절히 처리하고 다음 작업을 계속할 수 있습니다.

예를 들어, TypeScript로 작성한 프로미스 체이닝의 예시는 다음과 같습니다.

function asyncTask1(): Promise<string> {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    // 작업이 완료되면 resolve 호출
    // 작업 중 에러 발생 시 reject 호출
  });
}

function asyncTask2(input: string): Promise<string> {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    // 작업이 완료되면 resolve 호출
    // 작업 중 에러 발생 시 reject 호출
  });
}

asyncTask1()
  .then((result) => asyncTask2(result))
  .then((finalResult) => {
    // 최종 결과를 사용하는 작업 실행
  })
  .catch((error) => {
    // 에러 처리 로직
  });

위 예제에서 catch 메서드를 이용해 에러를 처리할 수 있습니다. 원하는 에러 처리 로직을 catch 메서드에 구현하여 프로미스 체이닝 중에 발생한 에러를 적절히 처리할 수 있습니다.

참고 문헌: