美文网首页
Rxjava2语法常用汇总

Rxjava2语法常用汇总

作者: 代码界的泥石流 | 来源:发表于2019-04-19 17:07 被阅读0次

    本人记录使用

    若详细学习,可点击:https://www.jianshu.com/p/e9c79eacc8e3

    Create(创建)

    create 操作符应该是最常见的操作符了,主要用于产生一个 Obserable 被观察者对象,为了方便大家的认知,以后的教程中统一把被观察者 Observable 称为发射器(上游事件),观察者 Observer 称为接收器(下游事件)。

    Map(转换)

    Map 基本算是 RxJava 中一个最简单的操作符了,熟悉 RxJava 1.x 的知道,它的作用是对发射时间发送的每一个事件应用一个函数,是的每一个事件都按照指定的函数去变化,而在 2.x 中它的作用几乎一致。

    Zip(事件合并)

    zip 专用于合并事件,该合并不是连接(连接操作符后面会说),而是两两配对,也就意味着,最终配对出的 Observable 发射事件数目只和少的那个相同。

    Concat(数据源合并)

    对于单一的把两个发射器连接成一个发射器,虽然 zip 不能完成,但我们还是可以自力更生,官方提供的 concat 让我们的问题得到了完美解决。

    FlatMap(数据源转换)

    FlatMap 是一个很有趣的东西,我坚信你在实际开发中会经常用到。它可以把一个发射器 Observable 通过某种方法转换为多个 Observables,然后再把这些分散的 Observables装进一个单一的发射器 Observable。但有个需要注意的是,flatMap 并不能保证事件的顺序,如果需要保证,需要用到我们下面要讲的 ConcatMap

    concatMap(数据源转换 有序)

    上面其实就说了,concatMapFlatMap 的唯一区别就是 concatMap 保证了顺序,所以,我们就直接把 flatMap 替换为 concatMap 验证吧。

    distinct(去重)

    这个操作符非常的简单、通俗、易懂,就是简单的去重嘛,我甚至都不想贴代码,但人嘛,总得持之以恒。

    Filter(条件过滤)

    信我,Filter 你会很常用的,它的作用也很简单,过滤器嘛。可以接受一个参数,让其过滤掉不符合我们条件的值

    buffer(位移)

    buffer 操作符接受两个参数,buffer(count,skip),作用是将 Observable 中的数据按 skip (步长) 分成最大不超过 count 的 buffer ,然后生成一个 Observable 。也许你还不太理解,我们可以通过我们的示例图和示例代码来进一步深化它。

    debounce(频率)

    去除发送频率过快的项,看起来好像没啥用处,但你信我,后面绝对有地方很有用武之地。

    reduce

    reduce 操作符每次用一个方法处理一个值,可以有一个 seed 作为初始值。

    defer

    简单地时候就是每次订阅都会创建一个新的 Observable,并且如果没有被订阅,就不会产生新的 Observable

    last

    last 操作符仅取出可观察到的最后一个值,或者是满足某些条件的最后一项。

    merge

    merge 顾名思义,熟悉版本控制工具的你一定不会不知道 merge 命令,而在 Rx 操作符中,merge 的作用是把多个 Observable 结合起来,接受可变参数,也支持迭代器集合。注意它和 concat 的区别在于,不用等到 发射器 A 发送完所有的事件再进行发射器 B 的发送。

    相关文章

      网友评论

          本文标题:Rxjava2语法常用汇总

          本文链接:https://www.haomeiwen.com/subject/qxiqgqtx.html