<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## FlatMap `FlatMap`將一個發射數據的Observable變換為多個Observables,然后將它們發射的數據合并后放進一個單獨的Observable ![flatMap](https://box.kancloud.cn/5ab866c339491dcc59aac0633b77a8d3_1280x620.png) `FlatMap`操作符使用一個指定的函數對原始Observable發射的每一項數據執行變換操作,這個函數返回一個本身也發射數據的Observable,然后`FlatMap`合并這些Observables發射的數據,最后將合并后的結果當做它自己的數據序列發射。 這個方法是很有用的,例如,當你有一個這樣的Observable:它發射一個數據序列,這些數據本身包含Observable成員或者可以變換為Observable,因此你可以創建一個新的Observable發射這些次級Observable發射的數據的完整集合。 注意:`FlatMap`對這些Observables發射的數據做的是合并(`merge`)操作,因此它們可能是交錯的。 在許多語言特定的實現中,還有一個操作符不會讓變換后的Observables發射的數據交錯,它按照嚴格的順序發射這些數據,這個操作符通常被叫作`ConcatMap`或者類似的名字。 ![mergeMap](https://box.kancloud.cn/40e68ea14f0b37a3ccecbe90f3a3390a_1280x620.png) RxJava將這個操作符實現為`flatMap`函數。 注意:如果任何一個通過這個`flatMap`操作產生的單獨的Observable調用`onError`異常終止了,這個Observable自身會立即調用`onError`并終止。 這個操作符有一個接受額外的`int`參數的一個變體。這個參數設置`flatMap`從原來的Observable映射Observables的最大同時訂閱數。當達到這個限制時,它會等待其中一個終止然后再訂閱另一個。 * Javadoc: [flatMap(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1)) * Javadoc: [flatMap(Func1,int)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1,%20int)) ![mergeMap.nce](https://box.kancloud.cn/d2e1e465ba407173baaf9f33bbf867db_1280x820.png) 還有一個版本的`flatMap`為原始Observable的每一項數據和每一個通知創建一個新的Observable(并對數據平坦化)。 它也有一個接受額外`int`參數的變體。 * Javadoc: [flatMap(Func1,Func1,Func0)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1,%20rx.functions.Func1,%20rx.functions.Func0)) * Javadoc: [flatMap(Func1,Func1,Func0,int)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1,%20rx.functions.Func1,%20rx.functions.Func0,%20int)) ![mergeMap.r](https://box.kancloud.cn/8e233f571bcbf5f11c49f34bf4e8bcb0_1280x780.png) 還有一個版本的`flatMap`會使用原始Observable的數據觸發的Observable組合這些數據,然后發射這些數據組合。它也有一個接受額外`int`參數的版本。 * Javadoc: [flatMap(Func1,Func2)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1,%20rx.functions.Func2)) * Javadoc: [flatMap(Func1,Func2,int)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMap(rx.functions.Func1,%20rx.functions.Func2,%20int)) ### flatMapIterable ![mergeMapIterable](https://box.kancloud.cn/4c97e597e10131bfd29ff45a8b2fd69f_1280x620.png) `flatMapIterable`這個變體成對的打包數據,然后生成Iterable而不是原始數據和生成的Observables,但是處理方式是相同的。 * Javadoc: [flatMapIterable(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMapIterable(rx.functions.Func1)) * Javadoc: [flatMapIterable(Func1,Func2)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#flatMapIterable(rx.functions.Func1,%20rx.functions.Func2)) ### concatMap ![concatMap](https://box.kancloud.cn/397948c9ce8e473a9d1666a688042538_1280x610.png) 還有一個`concatMap`操作符,它類似于最簡單版本的`flatMap`,但是它按次序連接而不是合并那些生成的Observables,然后產生自己的數據序列。 * Javadoc: [concatMap(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#concatMap(rx.functions.Func1)) ### switchMap ![switchMap](https://box.kancloud.cn/69b23d7e78cfe556a234d60d3f5ef3e9_1280x700.png) RxJava還實現了`switchMap`操作符。它和`flatMap`很像,除了一點:當原始Observable發射一個新的數據(Observable)時,它將取消訂閱并停止監視產生執之前那個數據的Observable,只監視當前這一個。 * Javadoc: [switchMap(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#switchMap(rx.functions.Func1)) ### split ![St.split](https://box.kancloud.cn/4cc99cff368a096280cdd95f73badcfe_1280x590.png) 在特殊的`StringObservable`類(默認沒有包含在RxJava中)中還有一個`split`操作符。它將一個發射字符串的Observable轉換為另一個發射字符串的Observable,只不過,后者將原始的數據序列當做一個數據流,使用一個正則表達式邊界分割它們,然后合并發射分割的結果。
                  <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>

                              哎呀哎呀视频在线观看