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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## From 將其它種類的對象和數據類型轉換為Observable ![from](https://box.kancloud.cn/10d0269445aefce2df2185470182ae00_1280x630.png) 當你使用Observable時,如果你要處理的數據都可以轉換成展現為Observables,而不是需要混合使用Observables和其它類型的數據,會非常方便。這讓你在數據流的整個生命周期中,可以使用一組統一的操作符來管理它們。 例如,Iterable可以看成是同步的Observable;Future,可以看成是總是只發射單個數據的Observable。通過顯式地將那些數據轉換為Observables,你可以像使用Observable一樣與它們交互。 因此,大部分ReactiveX實現都提供了將語言特定的對象和數據結構轉換為Observables的方法。 ![from](https://box.kancloud.cn/015f5c1bb40335fd1359c61877fe3368_1280x630.png) 在RxJava中,`from`操作符可以轉換Future、Iterable和數組。對于Iterable和數組,產生的Observable會發射Iterable或數組的每一項數據。 示例代碼 ```java Integer[] items = { 0, 1, 2, 3, 4, 5 }; Observable myObservable = Observable.from(items); myObservable.subscribe( new Action1<Integer>() { @Override public void call(Integer item) { System.out.println(item); } }, new Action1<Throwable>() { @Override public void call(Throwable error) { System.out.println("Error encountered: " + error.getMessage()); } }, new Action0() { @Override public void call() { System.out.println("Sequence complete"); } } ); ``` 輸出 ``` 0 1 2 3 4 5 Sequence complete ``` 對于Future,它會發射Future.get()方法返回的單個數據。`from`方法有一個可接受兩個可選參數的版本,分別指定超時時長和時間單位。如果過了指定的時長Future還沒有返回一個值,這個Observable會發射錯誤通知并終止。 `from`默認不在任何特定的調度器上執行。然而你可以將Scheduler作為可選的第二個參數傳遞給Observable,它會在那個調度器上管理這個Future。 * Javadoc: [from(array)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#from(T%5B%5D)) * Javadoc: [from(Iterable)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#from(java.lang.Iterable)) * Javadoc: [from(Future)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#from(java.util.concurrent.Future)) * Javadoc: [from(Future,Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#from(java.util.concurrent.Future,%20rx.Scheduler)) * Javadoc: [from(Future,timeout, timeUnit)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#from(java.util.concurrent.Future,%20long,%20java.util.concurrent.TimeUnit)) ### RxJavaAsyncUtil ![from func)](https://box.kancloud.cn/ccfc2bc694e982449442e3eb39a96454_1280x620.png) 此外,在可選包 `RxJavaAsyncUtil` 中,你還可以用下面這些操作符將actions,callables,functions和runnables轉換為發射這些動作的執行結果的Observable: * fromAction * fromCallable * fromFunc0 * fromRunnable 在這個頁面 [Start](http://reactivex.io/documentation/operators/start.html) 查看關于這些操作符的更多信息。 ![from](https://box.kancloud.cn/51a16992f821e656d50203e4388c9732_1280x600.png) 注意:還有一個可選的`StringObservable`類中也有一個`from`方法,它將一個字符流或者一個REader轉換為一個發射字節數組或字符串的Observable。 ### runAsync2 注意:這里與后面`start`操作符里的`runAsync`說明重復了 在單獨的`RxJavaAsyncUtil`包中(默認不包含在RxJava中),還有一個`runAsync`函數。傳遞一個`Action`和一個`Scheduler`給`runAsync`,它會返回一個`StoppableObservable`,這個Observable使用`Action`產生發射的數據項。 傳遞一個`Action`和一個`Scheduler`給`runAsync`,它返回一個使用這個`Action`產生數據的`StoppableObservable`。這個`Action`接受一個`Observable`和一個`Subscription`作為參數,它使用`Subscription`檢查`unsubscribed`條件,一旦發現條件為真就立即停止發射數據。在任何時候你都可以使用`unsubscribe`方法手動停止一個`StoppableObservable`(這會同時取消訂閱與這個`StoppableObservable`關聯的`Subscription`)。 由于`runAsync`會立即調用`Action`并開始發射數據,在你創建StoppableObservable之后到你的觀察者準備好接受數據之前這段時間里,可能會有一部分數據會丟失。如果這不符合你的要求,可以使用`runAsync`的一個變體,它也接受一個`Subject`參數,傳遞一個`ReplaySubject`給它,你可以獲取其它丟失的數據了。 ### decode ![decode](https://box.kancloud.cn/2b6935872120805ee770cd8ac94d4310_1280x600.png) `StringObservable`類不是默認RxJava的一部分,包含一個`decode`操作符,這個操作符將一個多字節字符流轉換為一個發射字節數組的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>

                              哎呀哎呀视频在线观看