android - RxJava 的请求队列

标签 android rx-java rx-android

我需要使用 RxJavaRetrofit 实现同步调用。我有一个 id 的 ArrayList。我需要迭代这个数组并使用 Retrofit 为每个 id 调用 Web 服务器,但我知道如何仅异步执行此操作,你能告诉我如何在队列中执行此操作吗?通话结束,下一个通话开始。

最佳答案

你的问题措辞很含糊,但我想我可能已经理解了。从项目列表开始,您可以使用 from() 创建这些项目的可观察对象。该值可以在您的 API 调用之后进行映射。使用 concatMap() 可以保证结果的顺序,因此您可以有效地获得结果的可观察值。您可以对这些进行任何您想做的事情,甚至可以对其调用 toBlocking() 并使可观察的同步。但应该没有必要这样做。

List<Result> results =
        Observable.from(ids)
                  .concatMap(id -> callToWebServer(id))
                  .toList()
                  .toBlocking()
                  .single();

关于android - RxJava 的请求队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695315/

相关文章:

android - RxAndroid,在 onDestroy() Activity 中停止计时器/observable.interval

android - RXjava和Retrofit处理空数据响应

android - 在 Android gradle 构建开始时根据风格复制文件

php - Android中通过PHP和Mysql登录

android - 为什么我的 RxJava Observable 没有完成?

android - 如何从 Hashmap 创建一个可观察对象?

android - 如何在谷歌地图 View 中显示多个位置

android - 如何定义以编程方式从 sqlite 检索数据的过程?

java - 如何从客户端角度使用异步方法

java - Android/RxJava 如何链接网络请求并在失败时重试