gpt4 book ai didi

java - 改造 + RxJava : How to request for multiple request in order and assemble results in single Observable?

转载 作者:太空狗 更新时间:2023-10-29 13:11:50 25 4
gpt4 key购买 nike

我正在使用 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>>> 的内容,这可能吗?

最佳答案

这应该可以解决问题:

listArticles(int pageIdx, int pageMax)
.flatMapIterable(list->list)
.flatMap(article ->
getUserByUserIds(article.userId)
.subscribeOn(Schedulers.io())
.flatMapIterable(list->list),
Pair::of
)
.toList();

但是,API 的规范很糟糕; Observables 已经有一个固有的顺序,不需要将所有东西都包装在一个列表中。 getUserByIds - 它会返回单个用户还是多个用户?为什么不为 User 方法设置一个 id?为什么域对象中的 ID 不是原语?您希望商品没有 ID 吗?

关于java - 改造 + RxJava : How to request for multiple request in order and assemble results in single Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39661192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com