我想发出一个api请求,然后我需要在收到数据后再发出两个请求。我发现了一个很好的so答案,它使用rxjava2在这里发出两个并发请求:
如何在改型2.0-android中发出多个请求并等待数据来自所有请求
我想我可以在第一个请求之后链接逻辑,但是我的直觉告诉我这是个坏主意,因为我会复制一些代码(我会为函数中的第一个请求使用单独的逻辑,然后为函数中的后两个请求使用类似的逻辑)
有没有更好的方法来实现这一点?我更喜欢kotlin,但java还可以。
下面是来自so应答的并发请求的代码。
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.build()
val backendApi = retrofit.create(MyBackendAPI::class.java)
val requests = ArrayList<Observable<*>>()
requests.add(backendApi.getUser())
requests.add(backendApi.listPhotos())
requests.add(backendApi.listFriends())
Observable
.zip(requests) {
// do something with those results and emit new event
Any() // <-- Here we emit just new empty Object(), but you can emit anything
}
// Will be triggered if all requests will end successfully (4xx and 5xx also are successful requests too)
.subscribe({
//Do something on successful completion of all requests
}) {
//Do something on error completion of requests
}
谢谢
暂无答案!
目前还没有任何答案,快来回答吧!