說我有那些過於類如何加載relationed對象與RxJava
class Event {
int id;
String name;
List<Integer> facilityIds;
List<Facility> facilities; // Empty, the one I need to load
}
class Facility {
int id;
String name;
}
目標:打印出他們的設施的名稱每個事件。
約束:RxJava2,設施只能由一個(getFacility(facilityId)
)
加載一個從Observable<Event>
,我無法找到我的路周圍裝載設施,並設置他們回到各自的活動。
基本上我在想是這樣的:
Observable<Event> events;
events
.map(Event::getFacilityIds)
.flatMap(Observable::fromIterable)
.map(facilityId -> service.getFacility(facilityId))
. // somehow get the event reference and
// so some event.addFacility() or something similar
然後我去相親,不能找到一種方法將它們鏈接回事件。我也想過使用zip
,它可能是一個解決方案,但我沒有找到一種方法來保存和事件引用,以便稍後將設施設置給他們。
什麼是被動的方式去?任何提示將不勝感激。
使用* flatMap *而不是* map *會更好嗎?因爲我認爲'service.getFacility'可能需要一些時間來回應... –
@ oliv37是的,你是對的。我將提供平行版本。你知道如何在平行執行的情況下保證啓動順序嗎?因爲我從來沒有嘗試過。 – Beloo
我得到了一個稍微不同的解決方案,但是對於'forEach'的使用讓我走上了正確的道路,謝謝。 – oldergod