catch는 업스트림 Publisher로부터 에러가 발행될 때 이를 처리하고 다른 Publisher로 변환하는 Operator에요.

기능

사용

enum MyError: Error {
  case timeoutError
}

let failPublisher = Fail<String, MyError>(error: .timeoutError)

failPublisher
  .catch { error -> AnyPublisher<String, Never> in
    return Just("데이터 복구")
      .eraseToAnyPublisher()
  }
  .sink { value in
    print(value)
  }
  .store(in: &cancellables)
  
  
// 결과
데이터 복구