<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## First 只發射第一項(或者滿足某個條件的第一項)數據 ![first](https://box.kancloud.cn/c8a20c8dd3ac63aba7329aed31cd0d40_1492x562.png) 如果你只對Observable發射的第一項數據,或者滿足某個條件的第一項數據感興趣,你可以使用`First`操作符。 在某些實現中,`First`沒有實現為一個返回Observable的過濾操作符,而是實現為一個在當時就發射原始Observable指定數據項的阻塞函數。在這些實現中,如果你想要的是一個過濾操作符,最好使用` Take(1)`或者`ElementAt(0)`。 在一些實現中還有一個`Single`操作符。它的行為與`First`類似,但為了確保只發射單個值,它會等待原始Observable終止(否則,不是發射那個值,而是以一個錯誤通知終止)。你可以使用它從原始Observable獲取第一項數據,而且也確保只發射一項數據。 在RxJava中,這個操作符被實現為`first`,`firstOrDefault`和`takeFirst`。 可能容易混淆,`BlockingObservable`也有名叫`first`和`firstOrDefault`的操作符,它們會阻塞并返回值,不是立即返回一個Observable。 還有幾個其它的操作符執行類似的功能。 ### 過濾操作符 ![first](https://box.kancloud.cn/3478bd4fd7a99dc7e9ce0fb85d9f70a2_1280x620.png) 只發射第一個數據,使用沒有參數的`first`操作符。 示例代碼 ```java 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. ``` * Javadoc: [first()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#first()) ### first(Func1) ![first](https://box.kancloud.cn/65a2a9d5b7e0974295c3cd8f5a22ea4c_1280x640.png) 傳遞一個謂詞函數給`first`,然后發射這個函數判定為`true`的第一項數據。 * Javadoc: [first(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#first(rx.functions.Func1)) ### firstOrDefault ![firstOrDefault](https://box.kancloud.cn/130cdc76a9263df3ab898a74087e8563_1280x610.png) `firstOrDefault`與`first`類似,但是在Observagle沒有發射任何數據時發射一個你在參數中指定的默認值。 * Javadoc: [firstOrDefault(T)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#firstOrDefault(T)) ### firstOrDefault(Func1) ![firstOrDefault](https://box.kancloud.cn/77bc38ddc905ddca27ad4b9bf1113a40_1280x620.png) 傳遞一個謂詞函數給`firstOrDefault `,然后發射這個函數判定為`true`的第一項數據,如果沒有數據通過了謂詞測試就發射一個默認值。 * Javadoc [firstOrDefault(T, Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#firstOrDefault(T, rx.functions.Func1)) ### takeFirst ![takeFirst](https://box.kancloud.cn/49d554f720d128a59415f73b08d7ecbe_1280x910.png) `takeFirst`與`first`類似,除了這一點:如果原始Observable沒有發射任何滿足條件的數據,`first`會拋出一個`NoSuchElementException`,`takeFist`會返回一個空的Observable(不調用`onNext()`但是會調用`onCompleted`)。 * Javadoc: [takeFirst(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#takeFirst(rx.functions.Func1)) ### single ![single](https://box.kancloud.cn/7eb40fe549d177b8d6749f6626c6864b_1280x630.png) `single`操作符也與`first`類似,但是如果原始Observable在完成之前不是正好發射一次數據,它會拋出一個`NoSuchElementException`。 * Javadoc: [single()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#single()) ### single(Func1) ![single](https://box.kancloud.cn/0bf0711aba2c079defc8f069d6b4a9bf_1280x630.png) `single`的變體接受一個謂詞函數,發射滿足條件的單個值,如果不是正好只有一個數據項滿足條件,會以錯誤通知終止。 * Javadoc: [single(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#single(rx.functions.Func1)) ### singleOrDefault ![single](https://box.kancloud.cn/b7822db4fbb56d75eb4818ee19a1a594_1280x630.png) 和`firstOrDefault`類似,但是如果原始Observable發射超過一個的數據,會以錯誤通知終止。 * Javadoc: [singleOrDefault(T)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#singleOrDefault(T)) ### singleOrDefault(T,Func1) ![single](https://box.kancloud.cn/7f2e21c154ea3df6927d527bc5d554d8_1280x630.png) 和`firstOrDefault(T, Func1)`類似,如果沒有數據滿足條件,返回默認值;如果有多個數據滿足條件,以錯誤通知終止。 * Javadoc: [singleOrDefault(Func1,T)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#singleOrDefault(rx.functions.Func1,%20T)) first系列的這幾個操作符默認不在任何特定的調度器上執行。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看