Retrofit + RxJava:如何按顺序请求多个请求并将结果汇​​总到单个Observable中?

时间:2016-09-23 12:48:32

标签: java android rx-java retrofit2

我正在使用RxJava + Retrofit。

例如,有文章

public class Article {
    private Long articleId;
    private Long userId;
    private String image;
    private String text;
    ...
}

和用户

public class User {
    private Long userId;
    private String userName;
    private String image;
    ...
}

并且有两个服务

  • Observable<List<User>> getUserByUserIds(List<Long> userIds)
  • Observable<List<Article>> listArticles(int pageIdx, int pageMax)

我想列出10篇文章和相关作者用户信息,将它们组合成Observable<List<Pair<Article, User>>>之类的内容,是否可能?

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

v

然而,API的编制非常糟糕; Observable已经具有先天的排序,无需将所有内容包装在List中。 getUserByIds - 它会返回单个用户还是多个用户?为什么不对User方法有一个id?为什么不是域对象原语中的ID?你希望有没有ID的物品吗?

答案 1 :(得分:0)

一种方法可能涉及使用zip操作符,它可以将多个Observable组合在一起。您可以阅读更多here。只需将两个observable传递给zip运算符

即可