2017-10-07 78 views
0

我正在爲我的應用製作啓動畫面。我希望它在進入主屏幕前至少持續N秒。Rx:強制可觀察至少需要N秒才能完成

我有一個Rx變量myObservable從服務器或從我的本地緩存中返回數據。我如何強制myObservable中完成至少N秒

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

在'subscribe'是另一個(稍微簡單)的選項之前添加'delay(new Date(Date.now()+ 6000)),因爲'delay'將接受絕對的Date。 – cartant

回答

1

您可以使用forkJoin等待到2個觀測量完成:

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

編輯:正如評論,Observable.timer(N)提到只有一個參數發射一個項目建成後將所以沒有需要使用take(1)

+0

感謝martin,你知道rxjava中的'forkjoin()'等價物嗎? – PerrierCitror

+1

看看這裏http://reactivex.io/documentation/operators/zip.html – martin

+1

考慮到計時器只會發出1個值,take(1)操作符是noop –

相關問題