前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RxJava2.x 五种观察者和操作符简介

RxJava2.x 五种观察者和操作符简介

作者头像
程序员飞飞
发布2020-02-29 16:22:16
7310
发布2020-02-29 16:22:16
举报
文章被收录于专栏:Android&Java技术

RxJava 提供了一系列操作符,可以使用它们来过滤(Filter)、选择(select)、变换(transform)、结合(combine)和组合(compose)多个 Observable,这些操作符让执行和复合变得非常高效!

RxJava 使用 3 步走:

  1. 创建 Observable;
  2. 创建 Observer;
  3. 使用 subscribe 进行订阅;

因此,这三者缺一不可,只有使用了 subscribe 被观察者才会开始发送数据。

1.五种观察者模式描述表

类型

描述

Observable

能够发射 0或 n 个数据,并以成功或错误事件终止

Flowable

能够发射 0或 n 个数据,并以成功或错误事件终止,支持背压,可以控制数据源发射的速度

Single

只发射单个数据或错误事件

Completable

从来不发射数据,只处理 onComplete 和 onError 事件,可以看成 Rx 的Runnable

Maybe

能够发射 0 或 1个数据,要么成功,要么失败,有点类似于 Optional

2.do 操作符的用途

操作符

用途

doOnSubscribe

一旦观察者订阅了 Observable,他就会被调用

doOnLifecycle

可以在观察者订阅之后,设置是否取消订阅

doOnNext

它产生的 Observable 每发射一项数据就会调用它一次,它的 Consumer 接受发射的数据项,一般用于在 subscribe 之前对数据进行处理

doOnEach

它产生的 Observable 每发射一项数据就会调用它一次,不仅包括 onNext,还有 onError 和 onCompleted

doAfterNext

在 onNext 之后执行,而 doOnNext 是在 onNext 之前执行

doOnComplete

当它产生的 Observable 在正常终止调用 onComplete 时会被调用

doFinally

当它产生的 Observable 终止之后被调用,无论是正常终止还是异常终止。doFinally 优先于 doAfterTerminate 的调用

doAfterTerminate

注册一个 Action,当 onComplete 或 onError 时触发

1.Map

Map 操作符的作用就是将 Observable 所发送送的信息进行格式转换或者处理转变为另外一个类型,然后发送给下游的 Observer

2.fromArray

传入一个数组或集合参数,将参数注入到 Flowable 中,仅此而已。

3.Filter

Filter 顾名思义,过滤器,可以过滤掉一部分不符合要求的事件,当上游给我们发送的数据超多,而下游需要的只是一些特定的数据,如果全部接收上游发送的数据,很容易造成 OOM, 为了避免 OOM 的出现。

4.just

just 是 RxJava 的创建操作符,用于创建一个 Observable,Consumer 是消费者,用于接收单个值。

5.do

do 操作符可以给 Observable 的生命周期的各个阶段加上一系列的回调监听,当执行到这一阶段时,回调就会被触发。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.五种观察者模式描述表
  • 2.do 操作符的用途
    • 1.Map
      • 2.fromArray
        • 3.Filter
          • 4.just
            • 5.do
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档