Как это возможно, используя Rx Android concatWith игнорировать ответ от сервера в случае сбоя? - PullRequest
0 голосов
/ 21 апреля 2020

Я запрашиваю как автономные данные, так и онлайн-данные. Я использую 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);
}
}

...