Rx常用操作符

常用操作符

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

发布了27 篇原创文章 · 获赞 68 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_40611659/article/details/104985321