【发布时间】:2022-10-06 22:20:50
【问题描述】:
我们如何在对象数组列表的 for 循环中执行相同的 API 调用:
private var emergencyContacts: ArrayList<Contact> = ArrayList()
emergencyContacts.forEach
{
contactsViewModel.deleteEmergencyContactsAPI(it.id, it.id2)
}
fun deleteEmergencyContactsAPI(patientID: String, contactId: Int) {
_deleteEmergencyContactsLiveData.postValue(Resource.loading())
repository.deleteEmergencyContact(patientID, contactId)
.subscribeOn(Schedulers.computation())
.subscribeWith(DeleteEmergencyContactsResponse(_deleteEmergencyContactsLiveData))
}
inner class DeleteEmergencyContactsResponse(liveData: MutableLiveData<Resource<Status>>) :
ResponseSingleObserverWrapper<Status, Status>(
compositeDisposable,
liveData
) {
override fun onSuccess(t: Status) {
_deleteEmergencyContactsLiveData.postValue(Resource.success(t))
}
override fun onError(e: Throwable) {
_deleteEmergencyContactsLiveData.postValue(Resource.error(e.message ?: \"\"))
}
}
我想在所有 API 调用后执行 UI,它不会影响屏幕性能。
我尝试过使用 Zip 运算符,并行网络 API 调用,但它不能很好地工作,因为 API 调用计数不是静态的。
任何提示或帮助将不胜感激。谢谢
-
您标记了 rxJava 和协程。你想用哪个?
标签: android kotlin retrofit rx-java kotlin-coroutines