イムは、それが理にかなっている場合RxJava:startWith()デフォルトのemitを追加する方法parent observableが放出するたびに?いくつかのオブジェクトを生成し、私の観察可能なパターンを、持ってしようとしている
public Observable<BookRenderingEvent> extractAndRenderObservable(String epubPath) {
return extractObservable(epubPath)
.flatMapObservable(extractedEpub -> renderObservable(extractedEpub)
.<BookRenderingEvent>map(renderedEpub -> new BookRenderingEvent.Success(renderedEpub))
.onErrorReturn(t -> new BookRenderingEvent.Error())
.startWith(new BookRenderingEvent.Started()));
}
private Observable<RenderedEpub> renderObservable(ExtractedEpub extractedEpub) {
return Observable.combineLatest(readerConfigObservable(), pagerDimensionsObservable(), ..)
.switchMapSingle(foo -> doRenderObservable()) <--- heavy work
.map(bar -> new RenderedEpub(bar))
}
renderObservableは重いアクションを含む、観察可能な生産を中心にemited開始、成功、エラーのようなドメインのイベントに変換されます私はこれらの状態イベントを放出したいので、UIはそれに応じて反応することができます(マップで見ることができるようにextractEpubオブジェクトを含む成功)
私の問題は、renderObservableはcombineLatestその卵子が放出されるたびに、時間内に複数の時間を放出する。
イベントの流れは、開始、成功、成功...成功です。 combineLatest whever私はそれを開始することにしたい
、成功、開始し、成功...などすなわちプリペンド開始イベントが発するが、私のRX知識が不十分です。
おかげ
どこに置いてください?どのように私はまたdoRenderObservableを実行するのだろうか? – urSus
ここでは、 'startWith()' –
が成功の前に来るところにあります。開始 – urSus