RxJava笔记
来源:互联网 发布:汽车刷ecu软件 编辑:程序博客网 时间:2024/06/03 19:30
1、map与flatmap区别
一方面,两者的返回值类型不同。map的返回类型是一个特定数据类型。flatmap返回的类型是Observable.
另一方面,转成数组时,map返回类型可能是List<String>,那么在observer的onNext方法中就得for循环来读取每个元素的值。如果用flatmap,返回类型是Observable.fromArray(),那么observer的onNext方法会执行多次,从而避免了嵌套for循环。去嵌套化,也是rxjava的设计理念。
2、subscribeOn与observeOn区别
subscribeOn指定了整个过程在哪个线程上执行。如果一个observable从create到subscribe之间,只有一个subscribeOn(Schedulers.io()),那么所有的操作都会同一新线程上执行。如果,没有指定subscribeOn,那么就默认都在主线程上执行。
observeOn指定了,从声明之后,直到再次出现observeOn声明的一段操作在哪个线程上执行。比如,在observable从create到subscribe之间声明了一个observeOn(Schedulers.io()),之后,有做了flatmap操作,那么这个flatmap就会在新线程上执行。再之后,又调了observeOn(AndroidSchedulers.mainThread()),最后,执行一subscribe,那么subscribe的操作就会变成主线程来执行。
所以,subscribeOn,只要声明一次,声明多次,只第一次有效。无论在observeOn之前还是之后,都没影响。
observeOn的优先级高于subscribeOn,且只会改变声明之后的操作所运行的线程。
- RxJava笔记
- Rxjava笔记
- RxJava笔记
- RxJava笔记
- rxJava笔记
- RxJava笔记
- RxJava笔记
- RxJava笔记
- RxJava笔记
- [RxJava笔记]RxJava操作符
- RxJava学习笔记
- RxJava学习笔记
- RxJava的学习笔记
- RxJava 学习笔记一
- RxJava 学习笔记二
- RxJava学习笔记1
- RxJAVA学习笔记(一)
- RxJava学习笔记2
- 文件头标志
- hive优化-压缩处理
- HDU 6162 Ch’s gift (2017多校9
- Android 8.0 新特性了
- map()函数
- RxJava笔记
- HDU6170-Two strings
- nyoj32组合数
- 迭代(python笔记)
- 安卓开发 color表
- springboot基本使用笔记----添加jsp支持及打包部署
- 安卓_缓存
- iOS 开发
- Confluence5.10.8安装教程