Fail은 에러와 함께 즉시 데이터 스트림을 종료하는 Publisher에요.
let failPublisher = Fail<Never, CustomError>(error: .customError)
failPublisher
.sink { completion in
switch completion {
case .finished:
print("finished!")
case .failure(let error):
print("error occured: \\(error)")
}
} receiveValue: { value in
print("value received: \\(value)")
}
// 결과
error occured: customError
기본적으로 Completion이 .failure을 반환하면 데이터 스트림은 즉시 종료돼요.
오로지 에러만을 전달하는 Publisher라고 보면 돼요.