在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ First
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁展示的操作符用于對整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對于非常長
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng)建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現(xiàn)自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁面展示的操作符可用于過濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁面列出了很多用于Observable的輔助操作符
Single
Retry
從錯(cuò)誤中恢復(fù)的技術(shù)
Sample
Merge
算術(shù)和聚合操作
Range
Timestamp
RxJava Issues
From
Subscribe
Subject
Delay
Skip
SubscribeOn
Filter
按字母順序排列的全部操作符列表
Timeout
Scan
onError
Zip
RxJava文檔和教程
Publish
ElementAt
第一個(gè)例子
SkipLast
Just
Timer
Debounce
GroupBy
條件和布爾操作
這個(gè)頁面展示了可用于對Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

First

First

只發(fā)射第一項(xiàng)(或者滿足某個(gè)條件的第一項(xiàng))數(shù)據(jù)

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/first.c.png" alt="first" />

如果你只對Observable發(fā)射的第一項(xiàng)數(shù)據(jù),或者滿足某個(gè)條件的第一項(xiàng)數(shù)據(jù)感興趣,你可以使用First操作符。

在某些實(shí)現(xiàn)中,First沒有實(shí)現(xiàn)為一個(gè)返回Observable的過濾操作符,而是實(shí)現(xiàn)為一個(gè)在當(dāng)時(shí)就發(fā)射原始Observable指定數(shù)據(jù)項(xiàng)的阻塞函數(shù)。在這些實(shí)現(xiàn)中,如果你想要的是一個(gè)過濾操作符,最好使用Take(1)或者ElementAt(0)。

在一些實(shí)現(xiàn)中還有一個(gè)Single操作符。它的行為與First類似,但為了確保只發(fā)射單個(gè)值,它會等待原始Observable終止(否則,不是發(fā)射那個(gè)值,而是以一個(gè)錯(cuò)誤通知終止)。你可以使用它從原始Observable獲取第一項(xiàng)數(shù)據(jù),而且也確保只發(fā)射一項(xiàng)數(shù)據(jù)。

在RxJava中,這個(gè)操作符被實(shí)現(xiàn)為first,firstOrDefaulttakeFirst。

可能容易混淆,BlockingObservable也有名叫firstfirstOrDefault的操作符,它們會阻塞并返回值,不是立即返回一個(gè)Observable。

還有幾個(gè)其它的操作符執(zhí)行類似的功能。

過濾操作符

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/first.png" alt="first" />

只發(fā)射第一個(gè)數(shù)據(jù),使用沒有參數(shù)的first操作符。

示例代碼

Observable.just(1, 2, 3)
          .first()
          .subscribe(new Subscriber<Integer>() {
        @Override
        public void onNext(Integer item) {
            System.out.println("Next: " + item);
        }

        @Override
        public void onError(Throwable error) {
            System.err.println("Error: " + error.getMessage());
        }

        @Override
        public void onCompleted() {
            System.out.println("Sequence complete.");
        }
    });

輸出

Next: 1
Sequence complete.

first(Func1)

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/firstN.png" alt="first" />

傳遞一個(gè)謂詞函數(shù)給first,然后發(fā)射這個(gè)函數(shù)判定為true的第一項(xiàng)數(shù)據(jù)。

firstOrDefault

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/firstOrDefault.png" alt="firstOrDefault" />

firstOrDefaultfirst類似,但是在Observagle沒有發(fā)射任何數(shù)據(jù)時(shí)發(fā)射一個(gè)你在參數(shù)中指定的默認(rèn)值。

firstOrDefault(Func1)

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/firstOrDefaultN.png" alt="firstOrDefault" />

傳遞一個(gè)謂詞函數(shù)給firstOrDefault,然后發(fā)射這個(gè)函數(shù)判定為true的第一項(xiàng)數(shù)據(jù),如果沒有數(shù)據(jù)通過了謂詞測試就發(fā)射一個(gè)默認(rèn)值。

takeFirst

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/first.takeFirst.png" alt="takeFirst" />

takeFirstfirst類似,除了這一點(diǎn):如果原始Observable沒有發(fā)射任何滿足條件的數(shù)據(jù),first會拋出一個(gè)NoSuchElementException,takeFist會返回一個(gè)空的Observable(不調(diào)用onNext()但是會調(diào)用onCompleted)。

single

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/single.png" alt="single" />

single操作符也與first類似,但是如果原始Observable在完成之前不是正好發(fā)射一次數(shù)據(jù),它會拋出一個(gè)NoSuchElementException。

single(Func1)

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/single.p.png" alt="single" />

single的變體接受一個(gè)謂詞函數(shù),發(fā)射滿足條件的單個(gè)值,如果不是正好只有一個(gè)數(shù)據(jù)項(xiàng)滿足條件,會以錯(cuò)誤通知終止。

singleOrDefault

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/singleOrDefault.png" alt="single" />

firstOrDefault類似,但是如果原始Observable發(fā)射超過一個(gè)的數(shù)據(jù),會以錯(cuò)誤通知終止。

singleOrDefault(T,Func1)

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/singleOrDefault.p.png" alt="single" />

firstOrDefault(T, Func1)類似,如果沒有數(shù)據(jù)滿足條件,返回默認(rèn)值;如果有多個(gè)數(shù)據(jù)滿足條件,以錯(cuò)誤通知終止。

first系列的這幾個(gè)操作符默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。

上一篇:Timer下一篇:介紹響應(yīng)式編程