rxjava系列(二)-- 强大的操作符
来源:互联网 发布:qt4 串口源码 编辑:程序博客网 时间:2024/06/06 17:34
rxjava强大的操作符,rxjava之所以如此强大、如此受开发者追捧,相信Operators是关键原因
http://blog.csdn.net/mo_android/article/details/73799773介绍了rxjava中的被观察者(Observable)、观察者(Subscriber)以及二者的实例化和绑定。这篇文章来总结下rxjava中强大的操作符。
1.何为操作符(Operators)
操作符是用来转换被观察者(Observable)对象的,操作符用于在被观察者(Observable)和最终的观察者(Subscriber)之间修改被观察者(Observable)发出的事件。
2.实例
定义是那么抽象,这里还是通过一些具体的操作符使用来理解rxjava操作符。
实例一 map()操作符
private void test1(){ Observable.just("Hello world") .map(new Func1<String, Integer>() { @Override public Integer call(String s) { return s.hashCode(); } }) .map(new Func1<Integer, String>() { @Override public String call(Integer integer) { return integer.toString(); } }) .subscribe(new Action1<String>() { @Override public void call(String s) { System.out.println(s); } }); }
这样就可以实现链式调用,在一个Observable对象上多次使用map操作符,最终将最简洁的数据传递给Subscriber对象。上面实例,首先创建一个被观察者对象,通过map操作符会将字符串处理成整形code码,再通过map操作符会将整形code码转换为字符串,最后订阅观察者,观察者监听到了最终返回的code码转换成的字符串。
注意:这里用到一个Func1函数,其功能和Action1类似,比Action1多了返回值。
实例二 flatMap()操作符
将Observable发射的数据变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable,内部采用merge合并。
private void test2(){ Observable.just("http://www.baidu.com/", "http://www.google.com/", "https://www.bing.com/") .flatMap(new Func1<String, Observable<String>>() { @Override public Observable<String> call(String s) { return Observable.just(s); } }) .subscribe(new Action1<String>() { @Override public void call(String s) { System.out.println(s); } }); }
关于操作符,这篇文章总结了非常完整的使用。
http://blog.csdn.net/maplejaw_/article/details/52396175
下篇文章我们将真正体验rxjava在Android开发中的应用。
欢迎大家留言讨论。
- rxjava系列(二)-- 强大的操作符
- 【Android】Rxjava操作符系列(二)
- RxJava系列(二、详解操作符)
- RxJava操作符系列二
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- RxJava入门系列二,操作符篇
- RxJava系列:操作符
- RxJava系列之二 变换类操作符详解1
- 【Android】Rxjava操作符系列(一)
- RxJava 和 RxAndroid 二(操作符的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- RxJava操作符(二)Transforming Observables
- Toolbar
- linux新定时器:timefd及相关操作函数
- SpringBoot下实现mybatis代码自动生成
- js 探讨call,apply,bind的使用
- 插入排序2
- rxjava系列(二)-- 强大的操作符
- gdb用法
- 引入外部PHP的几种方式
- 守护进程
- 00104 SQL查询进阶2:多表联合查询JOIN
- Hdu2204 Eddy's爱好
- 异步修改+显示隐藏
- iOS 敏捷开发项目实战
- 如何去掉UITableView中多余的cell