Rx常用操作符

常用操作符

Observable.from()

  • 它接收一個(gè)集合作為輸入,然后每次輸出一個(gè)元素給subscriber,將集合依次發(fā)送,

map

  • 用來把把一個(gè)事件轉(zhuǎn)換為另一個(gè)事件的

flatmap

  • 接收一個(gè)Observable的輸出作為輸入,同時(shí)輸出另外一個(gè)Observable

concatmap

  • 類似flatmap,區(qū)別是遵循事件的順序

switchmap

  • observable發(fā)送新數(shù)據(jù)時(shí),舊數(shù)據(jù)訂閱還未完成,取消舊的,開始新的

filter

  • 過濾

take

  • 指定數(shù)量

doOnNext

  • 每次輸出一個(gè)元素之前做額外的事

doOnSubsrcibe

  • 類似onStart(),不過可以指定線程,由之后的subscribeOn指定

subscribeOn

  • 事件發(fā)送的線程,subscribe() 所發(fā)生的線程,即 Observable.OnSubscribe 被激活時(shí)所處的線程
img

obserberOn

  • 事件接收的線程,Subscriber 所運(yùn)行在的線程,(可能是UI線程),切換之后操作所在的線程
img

Scheduler

  • Schedulers.immediate() 默認(rèn)在當(dāng)前線程運(yùn)行
  • Schedulers.newThread()
  • Scheduler.io 和 newThread() 差不多,區(qū)別在于 io() 的內(nèi)部實(shí)現(xiàn)是是用一個(gè)無數(shù)量上限的線程池,可以重用空閑的線程,因此多數(shù)情況下 io()newThread() 更有效率
  • Scheduler.commputation
  • AndroidSchedulers.mainThread

CompositeSubscription

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

debounce

  • 發(fā)送指定時(shí)間以后的數(shù)據(jù),可用于防抖

onBackpressureBuffer

  • 防止數(shù)據(jù)發(fā)送過快,緩存起來

ofType(class)

  • 指定某個(gè)類型的class,過濾屬于這個(gè)類型的的結(jié)果,其它拋棄

buffer

  • 收集單個(gè)事件輸出一個(gè)數(shù)組

concat

  • 將多個(gè)observable ,按順序串聯(lián)起來

first

  • 從串聯(lián)隊(duì)列中取出并發(fā)送第一個(gè)事件,也可以依次過濾(三級(jí)緩存)

compose

combineLastest

  • CombineLatest操作符行為類似于zip,但是只有當(dāng)原始的Observable中的每一個(gè)都發(fā)射了一條數(shù)據(jù)時(shí)zip才發(fā)射數(shù)據(jù)。CombineLatest則在原始的Observable中任意一個(gè)發(fā)射了數(shù)據(jù)時(shí)發(fā)射一條數(shù)據(jù)。當(dāng)原始Observables的任何一個(gè)發(fā)射了一條數(shù)據(jù)時(shí),CombineLatest使用一個(gè)函數(shù)結(jié)合它們最近發(fā)射的數(shù)據(jù),然后發(fā)射這個(gè)函數(shù)的返回值。

doOnRequest

RxBinding

  • android 監(jiān)聽事件包裝

    RxView.clicks

    RxTextView.textChanges

    RxAdapterView.itemClicks

    ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本篇文章介主要紹RxJava中操作符是以函數(shù)作為基本單位,與響應(yīng)式編程作為結(jié)合使用的,對(duì)什么是操作、操作符都有哪些...
    嘎啦果安卓獸閱讀 2,987評(píng)論 0 10
  • 作者: maplejaw本篇只解析標(biāo)準(zhǔn)包中的操作符。對(duì)于擴(kuò)展包,由于使用率較低,如有需求,請(qǐng)讀者自行查閱文檔。 創(chuàng)...
    maplejaw_閱讀 46,217評(píng)論 8 93
  • 參考:給 Android 開發(fā)者的 RxJava 詳解-扔物線深入淺出RxJava 基礎(chǔ) "a library f...
    Vincen1024閱讀 579評(píng)論 0 1
  • 創(chuàng)建操作 用于創(chuàng)建Observable的操作符Create通過調(diào)用觀察者的方法從頭創(chuàng)建一個(gè)ObservableEm...
    rkua閱讀 1,957評(píng)論 0 1
  • 響應(yīng)式編程簡(jiǎn)介 響應(yīng)式編程是一種基于異步數(shù)據(jù)流概念的編程模式。數(shù)據(jù)流就像一條河:它可以被觀測(cè),被過濾,被操作,或者...
    說碼解字閱讀 3,558評(píng)論 0 5

友情鏈接更多精彩內(nèi)容