Rxjava合并,连接操作符

Rxjava合并操作符

合并操作符作用
startWith在Observable发射的数据前添加一个数据,
merge, mergeDelayError将多个Observable合并为一个,mergeDelayError,是全部Observable发射完执行onError
zip使用一个函数组合多个Observable发射的数据,然后再发射这个合并数据的结果
combineLatest当两个Observable中任何一个发射了一个数据时,通过一个指定的函数组合两个Observable发射的最新数据,然后发射组合的结果
join无论何时,一个Observable发射了一个数据,都需要跟另一个Observable发射的所有数据项合并发射
switchOnNext将一个发射Observable的Observable转换成另一个Observable,后者发射这些Observable最近发射的数据
merge, mergeDelayError

合并多个Observable,merge是按照时间线执行的,如果发射过程中有一个有onError,则全部都会停止。如果想让所有的Observable全部发射完数据,直到最后才报告onError,就使用mergeDelayError.

//输出1,2,3,4,5,6
Observable<Integer> odds = Observable.just(1,2,3);
Observable<Integer> evens = Observable.just(4,5,6);
Observable.merge(odds, evens)
   .subscribe(s -> System.out.println(s));
zip

通过一个函数将多个Observable的发射物结合到一起,基于这个函数的结果,为每个结合体发射单个数据项。
若两个Observable发射数据量不同,则只会截止到发射数据量最少的那个。

//连个Observable的数据项相加,输出的为  5,7,9, 不会再操作 4,5
Observable<Integer> odds = Observable.just(1,2,34,5);
Observable<Integer> evens = Observable.just(4,5,6);
Observable.zip(odds, evens, new BiFunction<Integer, Integer, Integer>() {
            @Override
            public Integer apply(Integer integer, Integer integer2) throws Exception {
                return integer + integer2;
            }
        }).subscribe(s -> System.out.println(s));
combineLastest

Rxjava链接操作符

连接操作符服用
ConnectableObservable.connect指示一个可连接的Observable开始发射数据
Observable。publish将一个Observable转换为一个可连接的Observable
Observable.replay确保所有订阅者开到相同的数据序列,即使他们在Observable开发发射数据之后才订阅
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值