rxjava并为之前调用的每一项修改api调用

bvjveswy  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(362)

我有这个api接口

@GET("api/..../{commentId}")
Observable<DiscussionPostRoot> getCommentsInPost(@Path("commentId") String commentId)

discussionpostroot有一些字段和对象列表,对于这个列表中的每个对象,我想用不同的值调用相同的api调用。这一刻我在做什么 foreach 但是api结果在不同的时间出现,我的适配器得到随机值。做什么;)?我更喜欢没有lambda的答案,但无论如何也可以有lambda:)

bvn4nwqk

bvn4nwqk1#

如果您使用的是rxjava(根据api中的可观察性判断,您是),您可以通过如下流操作来解决它:
https://gist.github.com/tnovoselec/73ba4946d4116e8f05946b5e40a3a031
无论如何,关键是首先拉入根对象,然后从中创建一个新的流(第一个flatmap),然后为每个对象创建一个新的observable来拉入注解(第二个flatmap),最后将所有内容收集到一个列表中,该列表可以传递给适配器。
另外,不要忘记添加适当的observeon()调用,以便在ui线程上获得结果。

相关问题