我正在进行API调用以获取节目播客的描述,并且基于播客的类型,我可能也可能不必执行另一个API调用来获取更多信息。我是RxJava的新手,我不确定进行此类调用的最佳方法。这是我到目前为止的内容:
public void fetchFeaturedItems() {
Timber.i("Fetching Featured...");
disposables.add(episodeService.getFeatured()
.subscribeOn(Schedulers.io())
.doOnNext(featured -> { //make second call
final Episode episode = featured.getEpisode();
Observable<Timing> timingObservable = episodeService.getTimingForEpisodeActs(episode);
if (timingObservable != null) {
timingObservable
.subscribeOn(Schedulers.io())
.doOnError(Timber::e)
.subscribe(timing -> {episodeManager.saveTiming(timing);}); //save to database
}
})
.observeOn(Schedulers.io())
.subscribe(featured -> {
saveFeatured(featured);
final Episode episode = featured.getEpisode();
notificationManager.handleNewEpisodeNotification(episode);
}, Timber::e));
}
这都可行,但是我在第二个订阅上收到“未使用订阅结果”的棉绒警告。我没有合并两个电话的结果。我真的可以使用一些指导。
使用flatMap()代替onNext()。您收到有关第二次订阅的“未使用订阅结果”的警告。 flatMap()应该有所帮助。
[read this首先和其他RxJava文档