我正在爲我的應用製作啓動畫面。我希望它在進入主屏幕前至少持續N秒。Rx:強制可觀察至少需要N秒才能完成
我有一個Rx變量myObservable
從服務器或從我的本地緩存中返回數據。我如何強制myObservable
在中完成至少N秒?
myObservable
// .doStuff to make it last at least N seconds
.subscribe(...)
我正在爲我的應用製作啓動畫面。我希望它在進入主屏幕前至少持續N秒。Rx:強制可觀察至少需要N秒才能完成
我有一個Rx變量myObservable
從服務器或從我的本地緩存中返回數據。我如何強制myObservable
在中完成至少N秒?
myObservable
// .doStuff to make it last at least N seconds
.subscribe(...)
您可以使用forkJoin
等待到2個觀測量完成:
Observable.forkJoin(myObservable, Observable.timer(N), data => data)
.subscribe(...);
編輯:正如評論,Observable.timer(N)
提到只有一個參數發射一個項目建成後將所以沒有需要使用take(1)
。
感謝martin,你知道rxjava中的'forkjoin()'等價物嗎? – PerrierCitror
看看這裏http://reactivex.io/documentation/operators/zip.html – martin
考慮到計時器只會發出1個值,take(1)操作符是noop –
在'subscribe'是另一個(稍微簡單)的選項之前添加'delay(new Date(Date.now()+ 6000)),因爲'delay'將接受絕對的Date。 – cartant