let asyncSubject = AsyncSubject<Int>()
Completed 이벤트가 전달되었을때 마지막 Next 이벤트를 Subscriber에게 전달한다.
asyncSubject
.subscribe {
print("AsyncSubject 1", $0)
}
.disposed(by: disposeBag)
asyncSubject.onNext(1)
asyncSubject.onNext(3)
asyncSubject.onNext(5)
Completed 이벤트가 없기 때문에 Subscriber에게 이벤트가 전달되지 않는다.
asyncSubject.onNext(4)
asyncSubject.onError(MyError.error)
// Output
AsyncSubject 1 next(4)
AsyncSubject 1 completed
Completed 이벤트가 전달되었을 때, 비로소 Subscriber에게 마지막 Next 이벤트와 Completed 이벤트를 전달한다.
만약 Error 이벤트가 들어온다면,
let errorAsyncSubject = AsyncSubject<Int>()
errorAsyncSubject
.subscribe {
print("Error AsyncSubject 1", $0)
}
.disposed(by: disposeBag)
errorAsyncSubject.onNext(100)
errorAsyncSubject.onError(SomeError.error)
// Output
Error AsyncSubject 1 error(error)
Error 이벤트만 전달하게 된다.
'iOS > RxSwift' 카테고리의 다른 글
[RxSwift] Relay (0) | 2022.09.17 |
---|---|
[RxSwift] Subject - ReplaySubject (0) | 2022.09.16 |
[RxSwift] Subject - BehaviorSubject (0) | 2022.09.15 |
[RxSwift] Subject - PublishSubject (0) | 2022.09.14 |
[RxSwift] Observable, Observer, Operators (0) | 2022.09.14 |