【问题标题】:Chaining api calls in RxJava and Retrofit在 RxJava 和 Retrofit 中链接 api 调用
【发布时间】:2018-04-25 20:19:23
【问题描述】:

我有一个获取电影的服务:

Single<List<Movie>> fetchAll();

以及为每部电影获取预告片的服务:

Single<List<Video>> fetchByMovieId(@Path("movie_id") long movieId);

在获取所有电影后,我还想获取他们的预告片并返回一个包含电影及其所有预告片的对象列表。使用 RxJava 实现这一目标的正确方法是什么?

【问题讨论】:

    标签: java retrofit rx-java


    【解决方案1】:

    ps:你应该避免提出很多请求。尝试按需执行此操作。

    yourClient.fetchAll()
              .subscribeOn(Schedulers.io())
              .observeOn(AndroidSchedulers.mainThread())
              .toObservable()
              .flatMapIterable(movies -> movies)
              .flatMap(movie -> yourClient.fetchByMovieId(movie.getId()))
              .toList()
              .subscribe()...
    

    【讨论】:

    • 我尝试了这种方法,但结果是Single&lt;List&lt;Videos&gt;&gt;,我希望它更像:Single&lt;List&lt;Pair&lt;Movie, List&lt;Videos&gt;&gt;&gt;
    猜你喜欢
    • 2018-06-16
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2018-06-12
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    相关资源
    最近更新 更多