我有一个Retrofit2可观察的调用我执行,并在它完成后立即链接到另一个可观察的以将结果存储到db中。它看起来像这样:
protected Observable<List<Long>> buildUseCaseObservable() {
return mDataRepo.fetchCountries().flatMap(new Function<List<CountryModel>, ObservableSource<List<Long>>>() {
@Override
public ObservableSource<List<Long>> apply(@NonNull List<CountryModel> countryModels) throws Exception {
return mDataRepo.storeCountries(countryModels);
}
});
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我希望订户获取第一个可观察到的结果。因此,id希望订阅者返回,<List<CountryModel>>而不是现在返回<List<Long>>。反正有这样做吗?不确定concat是否可以提供帮助?
在RxJava1中,flatmap有一个重载的方法,允许您保留源值并将其传递到流中。
我从以下博客文章中获得了这些知识
但是,转到RxJava2,我似乎找不到它。我检查了Rx1和Rx2的更改,但未列出。我想知道它是否仍然存在,但也许我找的地方不对。
我正在使用Single顺便说一句。