0
문제 설명
간단한 함수 buildUseCaseObservable
이있는 간단한 클래스가 있습니다. ServerUnavailable
, SocketException
는 데이터베이스에서 데이터를 읽어도보고해야합니다 : 같은 예외가 실패하면 데이터베이스 관찰 가능한 오류 처리
- 시도가
- 처음으로 인터넷에서 데이터를 가져 오기 위해 다음을 수행해야 오류.
- 데이터를 수신했지만 데이터가 null이거나 비어있는 경우 데이터베이스의 데이터를 읽어야합니다. 예상처럼
기본적으로 모든 굵은 점을 제외하고 작동합니다. 웹에서 데이터를 가져 오는 중에 문제가 발생하면 onError
만 호출되고 onNext
은 호출되지 않습니다.
나는
질문
입니다 (대신 onNext
가 호출, 호출되지 않습니다 onError
) 방법은 기본적으로 내가 필요로하지만,이 경우에 내가 오류를 잃어버린거야 일을하는 onErrorResumeNext
라는이 있다는 것을 발견 같은 방법 onCompleteWithError
같은 또는 아무런 오류를 잃지 않을 그런 일을 구현하는 방법? onError()
및 onNext()
는 상호 배타적 인 것처럼
@PerActivity
public class DataInteractor extends Interactor {
private RestService rest;
private DataService data;
@Inject
AuthorsInteractor(RestService rest, DataService data) {
this.rest = rest;
this.data = data;
}
@Override
protected Observable buildUseCaseObservable() {
return Observable.concat(
rest.getData().doOnNext(data -> data.setAuthors(authors)),
data.getData())
.first(data -> data != null && !authors.isEmpty());
}
}
거기가 일을 좀 더 우아한 방법 내가 함께 가고 싶어하면 결과 및 오류를 모두 반환 할 수 있도록하는 클래스입니다 내가 뭘하고 싶어? –
[이 블로그 게시물] (http://blog.danlew.net/2015/06/22/loading-data-from-multiple-sources-with-rxjava/)은 @VictorApoyan에게 유용 할 수 있습니다. 건배. –
@YeMinHtut 덕분에 유용하지만 내 질문에는 적합하지 않습니다. –