Android TechAndroid开发Android

RxJava操作符大全

2016-09-01  本文已影响7793人  maplejaw_

作者: maplejaw
本篇只解析标准包中的操作符。对于扩展包,由于使用率较低,如有需求,请读者自行查阅文档。

创建操作

以下操作符用于创建Observable。

过滤操作

        Observable.just(3,4,5,6)
                 .elementAt(2)
        .subscribe(item->Log.d("JG",item.toString())); //5

条件/布尔操作

聚合操作

转换操作

变换操作

错误处理/重试机制

连接操作

ConnectableObservable与普通的Observable差不多,但是可连接的Observable在被订阅时并不开始发射数据,只有在它的connect()被调用时才开始。用这种方法,你可以等所有的潜在订阅者都订阅了这个Observable之后才开始发射数据。
ConnectableObservable.connect()指示一个可连接的Observable开始发射数据.
Observable.publish()将一个Observable转换为一个可连接的Observable
Observable.replay()确保所有的订阅者看到相同的数据序列的ConnectableObservable,即使它们在Observable开始发射数据之后才订阅。
ConnectableObservable.refCount()让一个可连接的Observable表现得像一个普通的Observable。


       ConnectableObservable<Integer> co= Observable.just(1,2,3)
                .publish();

        co .subscribe(integer -> Log.d("JG",integer.toString()) );
        co.connect();//此时开始发射数据

阻塞操作

BlockingObservable是一个阻塞的Observable。普通的Observable 转换为 BlockingObservable,可以使用 Observable.toBlocking( )方法或者BlockingObservable.from( )方法。内部通过CountDownLatch实现了阻塞操作。。

以下的操作符可以用于BlockingObservable,如果是普通的Observable,务必使用Observable.toBlocking()转为阻塞Observable后使用,否则达不到预期的效果。

工具集

最后

关于RxJava标准库的操作符已经介绍完毕,纯粹当个备忘录。如有错误之处,欢迎指出。


本文部分操作符描述参考了【ReactiveX文档中文翻译】

上一篇 下一篇

猜你喜欢

热点阅读