티스토리 뷰
Infallible?
Infallible은 다른 형태의 Observable입니다. Observable이기때문에 이벤트를 방출합니다. 하지만 Next와 Completed만을 방출하고 Error는 방출하지 않음을 보장합니다.
Infallible의 구현체를 살펴보겠습니다.
구현체에도 주석으로 "Error calback is not expose because 'Infallible' can't error out."라고 명시되어 있습니다.
public func subscribe<Object: AnyObject>(
with object: Object,
onNext: ((Object, Element) -> Void)? = nil,
onCompleted: ((Object) -> Void)? = nil,
onDisposed: ((Object) -> Void)? = nil
) -> Disposable {
self.asObservable().subscribe(
with: object,
onNext: onNext,
onCompleted: onCompleted,
onDisposed: onDisposed
)
}
위와 같이 Infallible에는 onError 클로저가 존재하지 않습니다.
그럼 어떻게 활용할까요?
let infallible1 = Infallible<Int>.create { observer in
observer(.next(1))
observer(.next(2))
observer(.completed)
return Disposables.create()
}
위와 같이 두 개의 정수를 방출하고 완료하는 Infallible Observable을 생성할 수 있습니다.
그리고 해당 Infallible을 구독하려고 하면..
위와 같이 onError 클로저를 제외한 나머지 클로저들을 Observable과 같은 방식으로 구현하면 됩니다.
참고 : https://github.com/ReactiveX/RxSwift/blob/main/Documentation/GettingStarted.md#infallible
'iOS > RxSwift' 카테고리의 다른 글
RxSwift - Relay (0) | 2022.03.05 |
---|---|
RxSwift - Subject (0) | 2022.03.04 |
RxSwift - Disposable, DisposeBag (0) | 2022.03.01 |
RxSwift - Observables, Observers (0) | 2022.02.27 |
RxSwift 시작하기 (0) | 2022.02.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DispatchQueue
- blendshapes
- infallible
- Kotlin
- C++
- ARKit
- Neo4j
- rxswift
- boj
- Reactivex
- SwiftUI
- Swift
- 코코아팟
- 백준
- Swift weak
- 카카오인턴십
- 알고리즘
- 백준온라인저지
- rxswift6
- ios
- 프로그래머스
- Lottie
- 안드로이드
- Swift unowned
- coreml
- cocoapods
- GraphDB
- SWEA
- blendshape
- disposeBag
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함