infallible
1. 절대 보증할 수 있는 2. 결코 틀리지 않은 3. 절대 옳은
Observale는 3가지 Event를 방출한다
Next, Error, Completed
Completed와 Next는 성공으로 분류하고 Error는 실패로 분류한다
infallible은 새로운 형태의 Observale이다.
infallible의 의미와 Observale을 결합해보면 알 수 있다.
infallible은 Next와 Completed만을 방출한다.
enum MyError: Error {
case unknown
}
let observable = Observable<String>.create { observer in
observer.onNext("Hello")
observer.onNext("Observable")
//observer.onError(MyError.unknown)
observer.onCompleted()
return Disposables.create()
}
라는 옵저버블이 있다. 위와 동일한 역할을 수행하는 infallible를 작성 하는데 Event를 전달하는 방법이 다르고,
ErrorEvent를 전달하지 못한다는 것만 빼면 나머지는 동일하다.
let infallible = Infallible<String>.create{ observer in
observer(.next("Hello"))
observer(.next("Observable"))
return Disposables.create()
}
infalliable에서 nextEvent를 정의하는 방식은 약간 다르다. 왜냐하면 infalliable의 InfallibleEvent는 열거형으로 정의되어 있다.
public enum InfallibleEvent<Element> {
/// Next element is produced.
case next(Element)
/// Sequence completed successfully.
case completed
}
ErrorEvent방출할 수 없는 구조로 되어있다.