我有这个api接口
@GET("api/..../{commentId}")
Observable<DiscussionPostRoot> getCommentsInPost(@Path("commentId") String commentId)
discussionpostroot有一些字段和对象列表,对于这个列表中的每个对象,我想用不同的值调用相同的api调用。这一刻我在做什么 foreach
但是api结果在不同的时间出现,我的适配器得到随机值。做什么;)?我更喜欢没有lambda的答案,但无论如何也可以有lambda:)
1条答案
按热度按时间bvn4nwqk1#
如果您使用的是rxjava(根据api中的可观察性判断,您是),您可以通过如下流操作来解决它:
https://gist.github.com/tnovoselec/73ba4946d4116e8f05946b5e40a3a031
无论如何,关键是首先拉入根对象,然后从中创建一个新的流(第一个flatmap),然后为每个对象创建一个新的observable来拉入注解(第二个flatmap),最后将所有内容收集到一个列表中,该列表可以传递给适配器。
另外,不要忘记添加适当的observeon()调用,以便在ui线程上获得结果。