Я запрашиваю как автономные данные, так и онлайн-данные. Я использую Rx Android concatWith
. Сначала источником данных является автономный кеш, а затем я запрашиваю данные. Если запрос не выполняется, я не должен переопределять автономные данные, но с моим текущим решением он переопределяет автономные данные. Как я могу проверить, что я получаю как в автономном режиме, так и в Интернете, если данные в сети не сработали, я должен пропустить их, чтобы перейти к View Вот мой код основной код в Transformer, где я использую concatWith
Flowable<DataContainer>performMain(){
return mRequest
.perform()
.onErrorReturn(
(Throwable throwable) -> {
return DataContainer.of(throwable);
})
.map(mTransformResponse);
}
Flowable<DataConainer>perform(){
return request.execute(mEndpoint)
.toFlowable()
.compose(transformer)
.map(DataContainer::of);
}
class Transformer
implements FlowableTransformer<Response>, DataContainer> {
public Flowable< DataContainer> apply() {
final Maybe<DataContainer> cacheObservable = read();
return cacheObservable
.toFlowable()
.concatWith(remoteObservable)
.onErrorResumeNext(upstream.compose(parser))
.subscribeOn(mIoScheduler);
}
}