2017-10-07 4 views
0

내 앱용 스플래시 화면을 만들고 있습니다. 기본 화면으로 이동하기 전에 N 초 이상 지속되기를 바랍니다.Rx : 관찰하기 위해 N 초 이상 경과해야합니다.

나는 Rx 변수 myObservable이 서버 또는 로컬 캐시에서 데이터를 반환합니다. myObservableN 초에 완료하려면 어떻게해야합니까??

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

'지연'은 절대 '날짜'를 허용하므로 '구독'이전에'delay (새 날짜 (날짜 .now() + 6000))'를 추가하는 것은 다소 (더 간단한) 옵션입니다. – cartant

답변

1

당신은 기다려야 forkJoin를 사용할 수있는 두 가지 Observables은 완료 될 때까지 :

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

편집 : take(1)를 사용하는이 필요가 없습니다 그래서 하나 개의 항목을 방출 한 후 완료 한 매개 변수 의견, Observable.timer(N)에서 언급 한 바와 같이 .

+0

감사합니다. martin, rxjava에서'forkjoin()'을 알고 있습니까? – PerrierCitror

+1

여기보세요 http://reactivex.io/documentation/operators/zip.html – martin

+1

take (1) 연산자가 타이머가 1 값만 출력한다고 생각하면 아무런 문제가 없습니다 –