ReactiveX的历史
ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,Rx的大部分语言库由ReactiveX这个组织负责维护,比较流行的有RxJava/RxJS/Rx.NET,社区网站是reactivex.io。
RxJava操作符
一,创建操作符:创建被观察者(Observable)然后发射数据。
博客地址:https://blog.csdn.net/luck_xiang/article/details/89491873
- just(),将传入的数据直接发射,该函数有10个重载方法,最多可以发送10个数据
- create(),从头创建一个被观察者,你可以在里面进行你的各种逻辑
- fromIterable(),将传入的数组或者集合依次有序的发射到观察者
- timer(),延时指定时间发射一个Long类型的数据到观察者
- fromArray(),将一个或者多个数组,集合一次性发射到被观察者,只执行一次onNext方法
- interval(),创建一个按照给定的时间间隔发射整数序列的Observable
- intervalRange(),创建一个按照给定的时间间隔发射整数序列的Observable
- rang(),创建一个发射指点范围的整数序列的Observable,无延时发射数据
- empty(),创建一个什么都不做直接完成的Observable
- error(),创建一个什么都不做直接通知错误的Observable
二,变换操作符:被观察者(Observable)然后发射数按照一定的规则再发送到观察者
博客地址:https://blog.csdn.net/luck_xiang/article/details/89532406
- map( ) — 对序列的每一项都应用一个函数来变换Observable发射的数据序列
- flatMap( ) , concatMap( ) , and flatMapIterable( ) — 将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的放进一个单独的Observable
- buffer( ) — 它定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而不是一次发射一个
三,合并操作符:组合操作符用于将多个Observable组合成一个单一的Observable。
- merge( ) — 将多个Observable合并为一个
- mergeDelayError( ) — 合并多个Observables,让没有错误的Observable都完成后再发射错误通知
- zip( ) — 使用一个函数组合多个Observable发射的数据集合,然后再发射这个结果
四,功能操作符:对被观察者(Observable)进行辅助操作
- subscribe(),订阅操作符,用于被观察者被观察者订阅的事件
- delay(),延迟发送事件,用于延迟发送数据
- do系列函数,rxjava运行时各个状态监督函数
- onErrorReturn(),指示Observable在遇到错误时发射一个特定的数据
- onExceptionResumNext(),指示Observable遇到错误时继续发射数据
- retry( ) — 指示Observable遇到错误时重试
- retryUntil(),