根据上一个API调用的结果进行RxJava调用的最佳方法

问题描述 投票:0回答:1

我正在进行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));
}

这都可行,但是我在第二个订阅上收到“未使用订阅结果”的棉绒警告。我没有合并两个电话的结果。我真的可以使用一些指导。

android retrofit2 rx-java2
1个回答
0
投票

使用flatMap()代替onNext()。您收到有关第二次订阅的“未使用订阅结果”的警告。 flatMap()应该有所帮助。

[read this首先和其他RxJava文档

© www.soinside.com 2019 - 2024. All rights reserved.