RxJava2.0 全异步编程 简介

1 基本概念

1.1 响应式编程

一种以 异步 数据流为核心的编程方式。这里的数据一般是一些事件;而流则是时间序列上的一系列的事件。任何东西都可以转化为数据流,如变量、用户输入事件、数据结构等。说直白点,为了让异步操作更简单,避免进入回调地狱。

1.2 ReactiveX

一种响应式扩展框架,有很多实现,例如 RxJava, RxJdbc,RxGo,RxKoltin,几乎所有主流语言。

官网这样定义:Rx是一个使用 可观察数据流 进行 异步编程 的编程接口,ReactiveX 结合了观察者模式、迭代器模式和函数式编程的精华;

微软给出的定义: Rx是一个函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序,使用Rx,开发者可以用Observables表示异步数据流,用LINQ

操作符查询异步数据流, 用Schedulers参数化异步数据流的并发处理。Rx可以这样定义:Rx = Observables + LINQ + Schedulers;

官网: http://reactivex.io

github: https://github.com/Reactive-Extensions

1.3 RxJava

 

用这张图可以概况RxJava 的组成, 可以抽象成 Observable、Observer、Scheduler 组成。

Observable

可观察对象

Observer

观察者

Scheduler

线程的一种抽象,不同的 Scheduler 代表了不同的线程

Single

一个特殊的Observable,只发射单个数据

SingleObserver

single的观察者

 

2.  一些操作

Single的操作符

Single也可以组合使用多种操作,一些操作符让你可以混合使用Observable和Single:

操作符返回值说明
composeSingle创建一个自定义的操作符
concat and concatWithObservable连接多个Single和Observable发射的数据
createSingle调用观察者的create方法创建一个Single
errorSingle返回一个立即给订阅者发射错误通知的Single
flatMapSingle返回一个Single,它发射对原Single的数据执行flatMap操作后的结果
flatMapObservableObservable返回一个Observable,它发射对原Single的数据执行flatMap操作后的结果
fromSingle将Future转换成Single
justSingle返回一个发射一个指定值的Single
mapSingle返回一个Single,它发射对原Single的数据执行map操作后的结果
mergeSingle将一个Single(它发射的数据是另一个Single,假设为B)转换成另一个Single(它发射来自另一个Single(B)的数据)
merge and mergeWithObservable合并发射来自多个Single的数据
observeOnSingle指示Single在指定的调度程序上调用订阅者的方法
onErrorReturnSingle将一个发射错误通知的Single转换成一个发射指定数据项的Single
subscribeOnSingle指示Single在指定的调度程序上执行操作
timeoutSingle它给原有的Single添加超时控制,如果超时了就发射一个错误通知
toSingleSingle将一个发射单个值的Observable转换为一个Single
zip and zipWithSingle将多个Single转换为一个,后者发射的数据是对前者应用一个函数后的结果

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值