메신저, 같은 도메인 이벤트로 변환됩니다 시작, 성공, 관찰을 일으키기 주위 emited 오류, 즉 의미RxJava : startWith() 기본 앞에 붙이는 방법 부모가 관찰 할 수있는 시간마다 emit을 내 보냅니다. 나의 관찰은 어떤 객체를 생성하는 패턴을 가지고 노력
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 무거운 조치를 포함하게하는 경우 그래서 나는이 상태 이벤트를 내고 싶다. 그래서 UI는 그에 따라 반응 할 수있다. (지도에서 볼 수있는 것처럼 추출 된 Epub 객체를 포함하는 성공과 함께)
내 문제는 renderObservable에 combineLatest "그것의 obervables가 방출 할 때마다, 시간에서 다수 시간을 내 놓는다.
따라서 이벤트 흐름은 Started, Success, Succes ... Success입니다.
나는 등 combineLatest whever 즉 앞에 추가 시작 이벤트가 방출 .. 시작, 성공, 성공 시작,하지만 내 RX 지식이 불충분 할 싶어요.
감사
당신이 그것을 어디에하시기 바랍니다 둘 것 방출하는 경우에 가입 가도록, 관찰 flatmap의 오른쪽으로 이동했다? 아이디어에서 벗어나서 .. 결합 이후에 갈 필요성을 짐작해라. 가장 최근의 모든 방출에 방아쇠를 당긴다. 그런데 doRenderObservable도 어떻게 달릴까? – urSus
바로 현재'startWith()'가 –
이고 성공하기 전에 성공한 경우는 – urSus