《学习记录》RxJava常用操作符。

RxJava常用操作符

  1. Repeat、Retry,repeat是onComplete后重新执行subscribe,retry是onError后重新执行subscribe
  2. repeatwhen、retryWhen是自定义重新subscribe的规则。

  3. all ,如果发射的数据都满足条件,则返回true

  4. amd,几个Observable合并起来,只发送最先发送数据的observable.

  5. contains,发送的数据里知否包含一个数据。

  6. isEmpty,是否发送过数据,发送过就是false。
  7. defaultIfEmpty,如果是emtry,就发送一个默认数据。
  8. SequenceEqual,用来判断两个observable是否相同,发送序列相同、数据相同,结果状态相同。
  9. skipUtil,skipWhile,
    这两个操作符都是根据条件来跳过一些数据,不同之处在于SkipUnitl是根据一个标志Observable来判断的,当这个标志Observable没有发射数据的时候,所有源Observable发射的数据都会被跳过;当标志Observable发射了一个数据,则开始正常地发射数据。SkipWhile则是根据一个函数来判断是否跳过数据,当函数返回值为true的时候则一直跳过源Observable发射的数据;当函数返回false的时候则开始正常发射数据。
  10. takeUtil,takeWhile
    TakeUntil和TakeWhile操作符可以说和SkipUnitl和SkipWhile操作符是完全相反的功能。TakeUntil也是使用一个标志Observable是否发射数据来判断,当标志Observable没有发射数据时,正常发射数据,而一旦标志Observable发射过了数据则后面的数据都会被丢弃。TakeWhile则是根据一个函数来判断是否发射数据,当函数返回值为true的时候正常发射数据;当函数返回false的时候丢弃所有后面的数据。
  11. defer 延迟Observable的创建,当有观察者subscrible时才创建observable。
  12. range,发送一个范围内的数据。
  13. interval,轮询操作,发送的数据从0开始,一次递增。三个参数的函数可以初始化开始延迟时间。
  14. timer,延迟设置的时间来进行操作,三个参数的可以进行轮训操作,类似interval。
  15. filter,过滤。返回boolean类型。
  16. take,只发送前几个数据。
  17. takeLast,只需要后几个数据。
  18. distinct,去重操作。
  19. distinctUntilChanged,如果当前数据跟前一个数据一样,则去掉。例如温度计的计数。
  20. first,last,发送第一个或者最后一个元素。
  21. skip、skipLast,跳过或者跳过最后几个元素。
  22. ElementAt,只发送固定的选择的元素。ElemtAtOrDefault,类似ElementAt,多了一个默认值。
  23. sample,在一定的时间间隔内发送最后一个元素。
  24. throttleFirst,在一定的时间间隔内只发送第一个元素。比较防止多次点击。
  25. timeout,设置一个超时时间,如果在超时时间内没有发送元素,则出发onerror。
  26. debounce,防抖动,在一定的时间间隔内,延时一段时间,如果没有新数据发送,则发送最后一个数据。

Map家族

  1. map, 对结果进行一次变换
  2. flatMap,以平铺的方式进行变换,返回的结果也是Observable。
  3. concatMap,按照以前的顺序发送数据。
  4. flatMapIterable,类似map,但返回的是数组。
  5. switchMap,停止监听当前的数据,转而监听新的数据。
  6. scan,累加器函数。
  7. groupby,分组函数,第一个参数是分组的key,第二个参数是对数据做出改变。
  8. butter,把发送数据缓存起来
  9. window,和buffer类似,不过返回的是Observable
  10. cast,接收一个class,转换为另一种数据类型。

  11. merge:合并多个observable,mergeDelayError,其中一个observable发生错误也继续,最后出发onError

  12. zip,把两个observable按照一定规则合并成一个。
  13. join,拼接一个observable到另一个observable上,第二个func1表示源observable的有效时长,第三个func1表示目标observable的有效时长,第四个func2表示对数据的处理。
  14. combileLast,结合最后一个发射的目标。
  15. and,then,when,组合一个joinObservable,进行处理数据。
  16. switch,当有新的observable发送数据时,旧的observable的数据被丢弃。
  17. startWith,在发送数据之前,先发送一些数据。
  18. concat,发送数据后,追加一些数据。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章