merge

将多个 Observables 合并成一个

merge - 图1

通过使用 merge 操作符你可以将多个 Observables 合并成一个,当某一个 Observable 发出一个元素时,他就将这个元素发出。

如果,某一个 Observable 发出一个 onError 事件,那么被合并的 Observable 也会将它发出,并且立即终止序列。


演示

  1. let disposeBag = DisposeBag()
  2. let subject1 = PublishSubject<String>()
  3. let subject2 = PublishSubject<String>()
  4. Observable.of(subject1, subject2)
  5. .merge()
  6. .subscribe(onNext: { print($0) })
  7. .disposed(by: disposeBag)
  8. subject1.onNext("🅰️")
  9. subject1.onNext("🅱️")
  10. subject2.onNext("①")
  11. subject2.onNext("②")
  12. subject1.onNext("🆎")
  13. subject2.onNext("③")

输出结果:

  1. 🅰️
  2. 🅱️
  3. 🆎