【发布时间】:2021-02-02 00:57:46
【问题描述】:
我有 2 个 API 调用:
- Call1:
Observable<Product>-> 返回产品列表。 - Call2:
Observable<InfoProduct>-> 其他人返回来自产品的更多信息(给定 ID)(响应不包含产品的 ID)
我需要我们调用的产品列表,一旦我有了它,从第二个 api 调用中一一调用额外的信息。一旦我拥有了所有,我必须对所有数据进行 mnix 以获得“CompleteInfoProduct”列表
我能够得到Call1的信息,我终于实现了获取更多信息产品的列表(call2)。这就是问题所在,我不知道如何将 call2 与 call1 的一项“匹配”。
简化示例:
getProducts()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { response ->
if (response.success) {
val productsId = response.products.map { it.id }
val obversableListMoreInfoProducts = mutableListOf<Observable<MoreInfoProductResponse>>()
productsId.forEach { productId ->
obversableListMoreInfoProducts.add(
this.model.getMoreInfoProduct(productId)
)
}
val sub = Observable.merge(obversableListMoreInfoProducts)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.toList()
.subscribe { it ->
Logger.d("Size MoreInfoProducts: ${it.size}")
<HERE I HAVE THE LIST OF MORE INFO . THE PROBLEM IS THAT THIS MODDEL DONT HAVE THE ID OF THE PRODUCT, AND I DON'T KNWO HOW TO JOIN WITH IT>
}
addSubscription(sub)
}
}
如何同步和混合所有信息?
【问题讨论】:
标签: android rest rx-java2 rx-android