如何在 RxJava 中同时 运行 多个 Observables?
How to run multi Observables conurrently in RxJava?
我正在开发 Android 应用程序。
我想在 UI 中显示两个值。
这些值是从 API 服务器检索的,我正在使用 Retrofit 来获取它们。
这是我的 ApiService 接口(改造):
interface ApiService {
@Get
fun getData1(): Observable<String>
@Get
fun getData2(): Observable<String>
}
下面是我的 Presenter 代码:
val data1 = apiService.getData1().map { "d1" to it }
val data2 = apiService.getData1().map { "d2" to it }
Observable.just(data1, data2)
.flatMap { it }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { (type, data) ->
when (type) {
"d1" -> view.showData1(data)
"d2" -> view.showData2(data)
}
}
它工作正常。
但这是按顺序进行的。
第一个请求"getData1()"完成后,发送第二个请求"getData2()"。
我想同时发送。
我该怎么做?
我正在开发 Android 应用程序。
我想在 UI 中显示两个值。 这些值是从 API 服务器检索的,我正在使用 Retrofit 来获取它们。
这是我的 ApiService 接口(改造):
interface ApiService {
@Get
fun getData1(): Observable<String>
@Get
fun getData2(): Observable<String>
}
下面是我的 Presenter 代码:
val data1 = apiService.getData1().map { "d1" to it }
val data2 = apiService.getData1().map { "d2" to it }
Observable.just(data1, data2)
.flatMap { it }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { (type, data) ->
when (type) {
"d1" -> view.showData1(data)
"d2" -> view.showData2(data)
}
}
它工作正常。 但这是按顺序进行的。 第一个请求"getData1()"完成后,发送第二个请求"getData2()"。
我想同时发送。
我该怎么做?