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)
// 결과
데이터 복구