组合操作符
merge()
作用
将两个或多个观察者组合在一起,并行发送事件
使用
1 | Observable.merge(Observable.interval(100,TimeUnit.MILLISECONDS).map(new Function<Long, String>() { |
输出结果
1 | accept: A0 |
merageArray()
与merage一样,但他可以发送4个以上的被观察者
zip()
作用
将多个观察者合并,根据观察者发送事件的顺序结合起来,但是最终发送事件的数量与被观察者中最少数量一致
使用
1 | Observable.zip(Observable.intervalRange(1, 5, 1, 1, TimeUnit.SECONDS) |
输出结果
1 | 06-25 21:44:02.480 30781-30804/com.example.bibingwei.androiddemo I/------: accept: A1B1 |
combineLatest()
作用
只要其中有一个Observable发送了事件,那么这个事件就会和其他的Observable最近发送的事件结合起来一起发送。
使用
1 | Observable.combineLatest(Observable.intervalRange(1, 4, 1, 1, TimeUnit.SECONDS) |
输出结果
1 | 06-26 10:07:44.310 18849-18914/com.example.bibingwei.androiddemo I/------: 发送: A1 |
reduce()
作用
看图,意图很明显
使用
1 | Observable.just(1,2,3,4,5) |
输出结果
1 | 06-26 10:27:42.960 19672-19672/com.example.bibingwei.androiddemo I/------: 之前一共发送: 1 现在发送: 2 |
startWith()
作用
在发送事件之前加上一些事件
使用
1 | Observable.just(1,2,3,4) |
输出结果
1 | 06-26 10:35:48.370 20803-20803/com.example.bibingwei.androiddemo I/------: accept: 9 |