我想基于以下情况创建一个Observable:
谢谢。
答案 0 :(得分:0)
首先,您可以使用以下逻辑编写方法“ saveToCache”:
if (success) return response;
else return new EmptyResponse();
然后您的RxJava代码可以像
Observable.fromCallable(yourNetworkCall())
.map(response -> saveToCache(response))
.filter(result -> !result.isEmpty())
.subscribe(yourObserver)
答案 1 :(得分:0)
您可以通过这种方式使其工作-
makeServerRequest()
.subscribeOn(Schedulers.io())
.map(someResponse -> {
if(saveTocache()) {
return someResponse;
} else {
throw new RuntimeException("Error while saving to cache");
}
})
.observeOn(AndroidSchedulers.io())
.subscribeWith(new Observer<SomeResponse> (){
public void onError(Throwable error) {
// here you will receive the runtime exception you throw.
}
:
:
:
});