我需要使用 RxJava
和 Retrofit
实现同步调用。我有一个 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/