[英]How can I combine two object in one of the object in RxJava?
我有Data和DataDetail類,每個類都包含其中更重要的數據。 我有一個從后端獲取的List類,有一個具有id字段的Data我可以請求DataDetail,而DataDetail有一些在Data對象中為null的信息,因此我可以從DataDetail中獲取並在Data類中進行設置。
`fetchData()
.toFlowable()
.flatMapIterable(datas->datas).map(new Function<Data, Flowable<DataDetail>>() {
@Override
public Flowable<DataDetail>`apply(@io.reactivex.annotations.NonNull Data data) throws Exception {
return
fetchDataDetail(data()).toFlowable(); } }) .map(new Function<DataDetail, Flowable<Data>>() { @Override public Flowable<DataDetail> apply(@io.reactivex.annotations.NonNull DataDetail dataDetail) throws Exception {
return //I want to have access data and dataDetail object } }) .toList();
.map()嗎? 在地圖中作為參數,我得到了可流動,可流動的DataDetail對象,但我需要訪問Data和DataDetail才能從DataDetail中獲取一些數據並在Data對象中進行設置
我相信這就是您的api返回的內容。
api.getList() // this returns a Single<List<Data>>
如果正確,那可能就是您要達到的目標。
Single<List<Pair<Data,Detail>>> dataSingle = api.getList()
.toFlowable()
.flatMap(Flowable::fromIterable) // Convert the list to single emissions
.flatMap(data -> {
// Make api call to get details
return api.getDetails(data.getId())
.flatMap(dataDetails -> {
return Flowable.just(Pair.create(data,dataDetail));
});
}).toList();
很顯然,如果你需要將其轉換成Flowable
,你可以很容易地做到這一點與toFlowable
。
該Pair
來自android.support.v4.util.Pair
。 理想情況下,您可以創建一個單獨的模型來表示data
和detail
的數據。 但是作為一個快速的技巧,您可以使用Pair
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.