RxJava操作符-條件


amb舶担、ambWith

amb
public static <T> Observable<T> amb(java.lang.Iterable<? extends Observable<? extends T>> sources)
public static <T> Observable<T> amb(Observable<? extends T> o1,
                    Observable<? extends T> o2)
......
public static <T> Observable<T> amb(Observable<? extends T> o1,
                    Observable<? extends T> o2,
                    Observable<? extends T> o3,
                    Observable<? extends T> o4,
                    Observable<? extends T> o5,
                    Observable<? extends T> o6,
                    Observable<? extends T> o7,
                    Observable<? extends T> o8,
                    Observable<? extends T> o9)

//Observable實(shí)例的方法
public final Observable<T> ambWith(Observable<? extends T> t1)

接受一個(gè)泛型為Observable的Iterable實(shí)例、或者兩到九個(gè)Observable實(shí)例作為源Observable闸氮。這些源Observable中第一個(gè)釋放item蒲跨、或者發(fā)出調(diào)用onError或onCompleted通知,那么amb返回的Observable就鏡像釋放這個(gè)源Observable釋放的item或發(fā)出的通知孙咪,而丟棄其它源Observable。Observable實(shí)例還有一個(gè)ambWith方法羔杨,接受一個(gè)Observable實(shí)例作為參數(shù)杨蛋,原理一樣。

defaultIfEmpty曙寡、switchIfEmpty

defaultIfEmpty
public final Observable<T> defaultIfEmpty(T defaultValue)
public final Observable<T> switchIfEmpty(Observable<? extends T> alternate)

如果源Observable不是空举庶,釋放了item户侥,那么defaultIfEmpty峦嗤、switchIfEmpty就鏡像釋放源Observable釋放的item。如果源Observable沒有釋放任何item就發(fā)出調(diào)用onCompleted通知正常停止替梨,那么對(duì)于defaultIfEmpty返回的Observable就釋放傳入的參數(shù)作為唯一的item装黑;對(duì)于switchIfEmpty返回的Observable就釋放傳入的Observable參數(shù)釋放的item恋谭。

skipUntil

skipUntil
public final <U> Observable<T> skipUntil(Observable<U> other)

注意糠睡,這是個(gè)Observable實(shí)例的方法哦。接受另一個(gè)Observable作為參數(shù)箕别。當(dāng)這另一個(gè)Observable釋放了item铜幽,skipUntil就開始鏡像釋放源Observable釋放的item滞谢,丟棄源Observable在另一個(gè)Observable釋放item之前釋放的所有item串稀。

skipWhile

skipWhile
public final Observable<T> skipWhile(Func1<? super T,java.lang.Boolean> predicate)

Observable實(shí)例的方法。接受一個(gè)Func1實(shí)現(xiàn)作為參數(shù)狮杨,這個(gè)Func1接受源Observable釋放的item作為參數(shù)母截,F(xiàn)unc1實(shí)現(xiàn)內(nèi)部定義了一個(gè)比較規(guī)則,如果傳入的item符合這個(gè)規(guī)則返回true橄教,不滿足返回false喘漏。當(dāng)Func1實(shí)現(xiàn)返回false的時(shí)候,skipWhile返回的Observable就鏡像釋放源Observable釋放的item华烟,之后源Observable釋放的item不再比較直接由skipWhile返回的Observable鏡像釋放翩迈,注意不滿足比較規(guī)則的item也被釋放出去了哦,和下面的takeWhile進(jìn)行比較盔夜,之前源Observable釋放的item將會(huì)被丟棄负饲。

takeUntil

takeUntil
takeUntil
public final <E> Observable<T> takeUntil(Observable<? extends E> other)
public final Observable<T> takeUntil(Func1<? super T,java.lang.Boolean> stopPredicate)

還是Observable實(shí)例的方法。接受另一個(gè)Observable或者一個(gè)接受源Observable釋放的item作為參數(shù)的Func1實(shí)現(xiàn)作為參數(shù)喂链,F(xiàn)unc1內(nèi)部定義了比較規(guī)則返十,如果源Obeservable釋放的item符合這個(gè)規(guī)則返回true,否則返回false椭微。takeUntil返回的Observable鏡像釋放源Observable釋放的item洞坑,直到傳入的Obserbable釋放item或者發(fā)出調(diào)用onError或onCompleted通知,或者傳入的Func1實(shí)現(xiàn)返回true蝇率,然后takeUntil返回的Observable停止迟杂。

takeWhile

takeWhile
public final Observable<T> takeWhile(Func1<? super T,java.lang.Boolean> predicate)

又是一個(gè)Obsevable實(shí)例的方法。接受一個(gè)Func1實(shí)現(xiàn)作為參數(shù)本慕,F(xiàn)unc1實(shí)現(xiàn)接受源Observable釋放的item作為參數(shù)逢慌,F(xiàn)unc1實(shí)現(xiàn)內(nèi)部定義了一個(gè)比較規(guī)則,如果接受的item滿足這個(gè)規(guī)則返回true间狂,反之返回false攻泼。takeWhile返回的Observable鏡像釋放源Observable釋放的item,直到Func1實(shí)現(xiàn)返回false的時(shí)候發(fā)出調(diào)用onCompleted通知停止鉴象。注意看圖忙菠,不滿足比較規(guī)則的item沒有釋放哦。不像skipWhile不滿足的item也被釋放出去了纺弊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牛欢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子淆游,更是在濱河造成了極大的恐慌傍睹,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犹菱,死亡現(xiàn)場(chǎng)離奇詭異拾稳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腊脱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門访得,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陕凹,你說我怎么就攤上這事悍抑■” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵搜骡,是天一觀的道長(zhǎng)拂盯。 經(jīng)常有香客問我,道長(zhǎng)记靡,這世上最難降的妖魔是什么磕仅? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮簸呈,結(jié)果婚禮上榕订,老公的妹妹穿的比我還像新娘。我一直安慰自己蜕便,他們只是感情好劫恒,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轿腺,像睡著了一般两嘴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上族壳,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天憔辫,我揣著相機(jī)與錄音,去河邊找鬼仿荆。 笑死贰您,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拢操。 我是一名探鬼主播锦亦,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼令境!你這毒婦竟也來了杠园?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤舔庶,失蹤者是張志新(化名)和其女友劉穎抛蚁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惕橙,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞧甩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吕漂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亲配。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尘应,死狀恐怖惶凝,靈堂內(nèi)的尸體忽然破棺而出吼虎,到底是詐尸還是另有隱情,我是刑警寧澤苍鲜,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布思灰,位于F島的核電站,受9級(jí)特大地震影響混滔,放射性物質(zhì)發(fā)生泄漏洒疚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一坯屿、第九天 我趴在偏房一處隱蔽的房頂上張望油湖。 院中可真熱鬧,春花似錦领跛、人聲如沸乏德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喊括。三九已至,卻和暖如春矢棚,著一層夾襖步出監(jiān)牢的瞬間郑什,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工蒲肋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蘑拯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓兜粘,卻偏偏與公主長(zhǎng)得像强胰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妹沙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 注:只包含標(biāo)準(zhǔn)包中的操作符偶洋,用于個(gè)人學(xué)習(xí)及備忘參考博客:http://blog.csdn.net/maplejaw...
    小白要超神閱讀 2,200評(píng)論 2 8
  • onErrorReturn: 默認(rèn)情況下,Observer訂閱的Observable如果發(fā)生異尘嗵牵或錯(cuò)誤玄窝,那么Obs...
    木月?lián)u江閱讀 9,270評(píng)論 1 7
  • 作者: maplejaw本篇只解析標(biāo)準(zhǔn)包中的操作符。對(duì)于擴(kuò)展包悍引,由于使用率較低恩脂,如有需求,請(qǐng)讀者自行查閱文檔趣斤。 創(chuàng)...
    maplejaw_閱讀 45,700評(píng)論 8 93
  • 本篇文章介主要紹RxJava中操作符是以函數(shù)作為基本單位俩块,與響應(yīng)式編程作為結(jié)合使用的,對(duì)什么是操作、操作符都有哪些...
    嘎啦果安卓獸閱讀 2,867評(píng)論 0 10
  • 我從去年開始使用 RxJava 玉凯,到現(xiàn)在一年多了势腮。今年加入了 Flipboard 后,看到 Flipboard 的...
    Jason_andy閱讀 5,501評(píng)論 7 62