美文网首页
Rx常用操作符

Rx常用操作符

作者: JustinBetter | 来源:发表于2017-03-14 12:58 被阅读51次

    常用操作符

    Observable.from()

    • 它接收一个集合作为输入,然后每次输出一个元素给subscriber,将集合依次发送,

    map

    • 用来把把一个事件转换为另一个事件的

    flatmap

    • 接收一个Observable的输出作为输入,同时输出另外一个Observable

    concatmap

    • 类似flatmap,区别是遵循事件的顺序

    switchmap

    • observable发送新数据时,旧数据订阅还未完成,取消旧的,开始新的

    filter

    • 过滤

    take

    • 指定数量

    doOnNext

    • 每次输出一个元素之前做额外的事

    doOnSubsrcibe

    • 类似onStart(),不过可以指定线程,由之后的subscribeOn指定

    subscribeOn

    • 事件发送的线程,subscribe() 所发生的线程,即 Observable.OnSubscribe 被激活时所处的线程
    img

    obserberOn

    • 事件接收的线程,Subscriber 所运行在的线程,(可能是UI线程),切换之后操作所在的线程
    img

    Scheduler

    • Schedulers.immediate() 默认在当前线程运行
    • Schedulers.newThread()
    • Scheduler.io 和 newThread() 差不多,区别在于 io() 的内部实现是是用一个无数量上限的线程池,可以重用空闲的线程,因此多数情况下 io()newThread() 更有效率
    • Scheduler.commputation
    • AndroidSchedulers.mainThread

    CompositeSubscription

    • 持有所有的Subscriptions,然后在onDestroy()或者onDestroyView()里取消所有的订阅

    debounce

    • 发送指定时间以后的数据,可用于防抖

    onBackpressureBuffer

    • 防止数据发送过快,缓存起来

    ofType(class)

    • 指定某个类型的class,过滤属于这个类型的的结果,其它抛弃

    buffer

    • 收集单个事件输出一个数组

    concat

    • 将多个observable ,按顺序串联起来

    first

    • 从串联队列中取出并发送第一个事件,也可以依次过滤(三级缓存)

    compose

    combineLastest

    • CombineLatest操作符行为类似于zip,但是只有当原始的Observable中的每一个都发射了一条数据时zip才发射数据。CombineLatest则在原始的Observable中任意一个发射了数据时发射一条数据。当原始Observables的任何一个发射了一条数据时,CombineLatest使用一个函数结合它们最近发射的数据,然后发射这个函数的返回值。

    doOnRequest

    RxBinding

    • android 监听事件包装

      RxView.clicks

      RxTextView.textChanges

      RxAdapterView.itemClicks

    相关文章

      网友评论

          本文标题:Rx常用操作符

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