<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國際加速解決方案。 廣告
                ## Start 返回一個Observable,它發射一個類似于函數聲明的值 ![Start](https://box.kancloud.cn/3f1cc78d69708d39db60c3dcdabe7051_1280x520.png) 編程語言有很多種方法可以從運算結果中獲取值,它們的名字一般叫`functions, futures, actions, callables, runnables`等等。在`Start`目錄下的這組操作符可以讓它們表現得像Observable,因此它們可以在Observables調用鏈中與其它Observable搭配使用。 `Start`操作符的多種RxJava實現都屬于可選的`rxjava-async`模塊。 `rxjava-async`模塊包含`start`操作符,它接受一個函數作為參數,調用這個函數獲取一個值,然后返回一個會發射這個值給后續觀察者的Observable。 注意:這個函數只會被執行一次,即使多個觀察者訂閱這個返回的Observable。 ### toAsync ![toAsync](https://box.kancloud.cn/190e7a30ad5e35d453aea3cc1c44d339_1280x620.png) `rxjava-async`模塊還包含這幾個操作符:`toAsync`, `asyncAction`, 和`asyncFunc`。它們接受一個函數或一個Action作為參數。 對于函數(functions),這個操作符調用這個函數獲取一個值,然后返回一個會發射這個值給后續觀察者的Observable(和`start`一樣)。對于動作(Action),過程類似,但是沒有返回值,在這種情況下,這個操作符在終止前會發射一個`null`值。 注意:這個函數或動作只會被執行一次,即使多個觀察者訂閱這個返回的Observable。 ### startFuture ![startFuture](https://box.kancloud.cn/93e59953ab78483d7419c99e6c40132a_1280x480.png) `rxjava-async`模塊還包含一個`startFuture`操作符,傳遞給它一個返回`Future`的函數,`startFuture`會立即調用這個函數獲取`Future`對象,然后調用`Future`的`get()`方法嘗試獲取它的值。它返回一個發射這個值給后續觀察者的Observable。 ### deferFuture ![deferFuture](https://box.kancloud.cn/7cec756b73b79819a0b700a878bf0f1b_1280x680.png) `rxjava-async`模塊還包含一個`deferFuture`操作符,傳遞給它一個返回`Future`的函數(這個`Future`返回一個`Observable`),`deferFuture`返回一個Observable,但是不會調用你提供的函數,直到有觀察者訂閱它返回的Observable。這時,它立即調用`Future`的`get()`方法,然后鏡像發射`get()`方法返回的Observable發射的數據。 用這種方法,你可以在Observables調用鏈中包含一個返回Observable的`Future`對象。 ### fromAction ![fromAction](https://box.kancloud.cn/2c266f158eadd655218b6099abbee510_1280x620.png) `rxjava-async`模塊還包含一個`fromAction`操作符,它接受一個`Action`作為參數,返回一個Observable,一旦Action終止,它發射這個你傳遞給`fromAction`的數據。 ### fromCallable ![fromCallable](https://box.kancloud.cn/2c266f158eadd655218b6099abbee510_1280x620.png) `rxjava-async`模塊還包含一個`fromCallable`操作符,它接受一個`Callable`作為參數,返回一個發射這個`Callable`的結果的Observable。 ### fromRunnable ![fromRunnable](https://box.kancloud.cn/640a2cd8c83f20bf2bbd811e57b2dec7_1280x620.png) `rxjava-async`模塊還包含一個`fromRunnable`操作符,它接受一個`Runnable `作為參數,返回一個Observable,一旦Runnable終止,它發射這個你傳遞給`fromRunnable`的數據。 ### forEachFuture ![forEachFuture](https://box.kancloud.cn/c98169de67dc2d93a5a7d9580e983c7f_1280x830.png) `rxjava-async`模塊還包含一個`forEachFuture`操作符。它其實不算`Start`操作符的一個變體,而是有一些自己的特點。你傳遞一些典型的觀察者方法(如onNext, onError和onCompleted)給它,Observable會以通常的方式調用它。但是`forEachFuture`自己返回一個`Future`并且在`get()`方法處阻塞,直到原始Observable執行完成,然后它返回,完成還是錯誤依賴于原始Observable是完成還是錯誤。 如果你想要一個函數阻塞直到Observable執行完成,可以使用這個操作符。 ### runAsync `rxjava-async`模塊還包含一個`runAsync`操作符。它很特殊,返回一個叫做`StoppableObservable `的特殊Observable。 傳遞一個`Action`和一個`Scheduler`給`runAsync`,它返回一個使用這個`Action`產生數據的`StoppableObservable`。這個`Action`接受一個`Observable`和一個`Subscription`作為參數,它使用`Subscription`檢查`unsubscribed`條件,一旦發現條件為真就立即停止發射數據。在任何時候你都可以使用`unsubscribe`方法手動停止一個`StoppableObservable`(這會同時取消訂閱與這個`StoppableObservable`關聯的`Subscription`)。 由于`runAsync`會立即調用`Action`并開始發射數據,在你創建StoppableObservable之后到你的觀察者準備好接受數據之前這段時間里,可能會有一部分數據會丟失。如果這不符合你的要求,可以使用`runAsync`的一個變體,它也接受一個`Subject`參數,傳遞一個`ReplaySubject`給它,你可以獲取其它丟失的數據了。 在RxJava中還有一個版本的`From`操作符可以將Future轉換為Observable,與`start`相似。
                  <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>

                              哎呀哎呀视频在线观看