Tunko Development Diary

RxSwift) Conditional Operators(amb) 본문

Development/RxSwift

RxSwift) Conditional Operators(amb)

Tunko 2022. 6. 6. 20:38

amb

amb연산자는 두개 이상의 옵저버블 중에 먼저 이벤트가 발생한 것에서만 구독을 합니다. 이후 다른 옵저버에서 Next이벤트가 발생해도 무시됩니다.

let disposeBag = DisposeBag()

enum TunkoError: Error {
   case error
}
let subject1 = PublishSubject<String>()
let subject2 = PublishSubject<String>()
let subject3 = PublishSubject<String>()

Observable.amb([subject1, subject2, subject3])
// subject1.amb(subject2) // 두개의 옵저버블일때 문법
    .subscribe { print($0) }
    .disposed(by: bag)

subject1.onNext("🍊")
subject2.onNext("🍓")
subject3.onNext("🍎")
subject2.onCompleted()
subject3.onError(TunkoError.error)

출력

next(🍊)

출력결과를 보면 subject2, subject3 의 next, error, completed 전부 무시된것을 확인할 수 있습니다.

반응형
Comments