2017-10-07 10 views
0

私のアプリのスプラッシュ画面を作っています。私はメイン画面に行く前に少なくともN秒間それを続けたい。Rx:観測にN秒以上かかることがあります。

私はRx変数myObservableを持っています。これはサーバーまたはローカルキャッシュからデータを返します。 myObservableで少なくともN秒で完了させるにはどうすればよいですか?

Observable.forkJoin(myObservable, Observable.timer(N), data => data) 
    .subscribe(...); 

編集:

myObservable 
// .doStuff to make it last at least N seconds 
    .subscribe(...) 
+0

'subscribe'の前に' delay(new Date(now.now()+ 6000)) 'を追加すると、' delay'は絶対 'Date'を受け入れるので、もう少し簡単なオプションです。 – cartant

答えて

1

あなたは完全な2つの観測するまで待つようにforkJoinを使用することができますコメントで述べたように、ただ一つのパラメータを持つObservable.timer(N)は使用する必要はありませんので、一つの項目を放出した後に完了しますtake(1)

+0

マーティンさん、rxjavaの 'forkjoin()'に相当することは知っていますか? – PerrierCitror

+1

ここをクリックhttp://reactivex.io/documentation/operators/zip.html – martin

+1

take(1)演算子はタイマーが1つの値しか出力しないと考えると、noopです –

関連する問題