merge

将多个 Observables 合并成一个

merge - 图1

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

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


演示

1. let disposeBag = DisposeBag()

3. let subject1 = PublishSubject<String>()
4. let subject2 = PublishSubject<String>()

6. Observable.of(subject1, subject2)
7. .merge()
8. .subscribe(onNext: { print($0) })
9. .disposed(by: disposeBag)

11. subject1.onNext("?️")

13. subject1.onNext("?️")

15. subject2.onNext("①")

17. subject2.onNext("②")

19. subject1.onNext("?")

21. subject2.onNext("③")

输出结果:

1. ?️
2. ?️
3. ①
4. ②
5. ?
6. ③