我是安卓新手,所以对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 })