2017-08-11 4 views
0

JSON文字列の形式でイベントを発行するObservableがあります。私はそれを購読してブロックし、最初の文字列を取得したい。問題ない。RxJava2 Blocking Observable Timeout:タイムアウトが発生した場合、どのように結果を出すのですか?

しかしタイムアウトが発生すると、タイムアウトが発生し、缶詰のJSON文字列が放出されます。ここで

は私の既存のコードです:あなたのサンプルコードsubscribeで必要とされないことを

rxEvents 
    .timeout(1, TimeUnit.SECONDS, Observable.just("fallback")) 
    .toBlocking() 
    .first() 

注:

String jsonString = rxEvents.subscribe().toBlocking().first(); 
+0

どのように機能しませんか? – klutt

+0

上記のコードは動作します。文字列として出力される最初のイベントの内容を出力します。問題は、タイムアウトが発生したときに缶詰めの(定数の)JSONテキスト文字列を出力するタイムアウトを追加する方法です。 – EBarnett

+0

私は言い換えるでしょう。あなたが望むものを達成しようとしましたが、それはどうしたらうまくいかないのですか? – klutt

答えて

0

はわずか3つのパラメータを取りtimeoutのバージョンを使用します。

+0

この応答は、私が求める解決策に向かっていますが、コンパイルされません。苦情は型の不一致です(Observable 対Observable <?extends String>)。 – EBarnett

+0

rxEventsのタイプを貼り付けて、メソッドのタイプを返すことができます – hgrey

+0

rxEventsはタイプオブザーバブルですには、応答オブジェクトに戻ってユーザに送られるJSONが含まれています。タイムアウトが発生した場合、私はタイムアウトを示すために必要なユーザメッセージを与えた使用可能なJSON文字列をモックアップしようとしていました。 Observable EBarnett

関連する問題