Android 循环调用 Rest API



我是安卓新手,所以对api电话有一些疑问。

目前,我使用Retrofit来完成我的api调用。

这是我的 api 调用与改造的示例

@POST("posts/new")
fun createPost(@Body post: Post, @Header("Authorization") token: String): Single<PostResult>

所以,假设我有 10 个帖子,我需要createPost 10 次调用(是的,我知道我可以在 BE 端输入list,但是......最好的方法是迭代帖子(for/map(并将它们发送到服务器。

但问题是:
- 如何跟踪所有呼叫是否已完成?

在JS中,我可以有类似Promise.all的东西-我可以做点什么吗 在安卓中类似?

我想过计算完成与开始的请求,但我认为这有点丑不是吗?

在响应成功时,您需要再次调用get/post方法。成功后,您知道您的 API 调用已完成,否则它会抛出错误。

感谢@shkschneider

你的问题很宽泛。你可以使用 RxJava 来压缩,或者使用 coroutines 来 async/await 或其他方法。

最终使用了.zip

Single.zip(observables) { args -> args }
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe({ ...Success }, { ...Failure })

最新更新