Ich habe eine Liste von Objekten: ArrayList<T> arrayList;
und auf jedes Objekt der Liste gibt es eine ID: T.getId()
die ich brauche, um eine Anfrage zu stellen. Als Antwort eine andere Liste von Objekten abgerufen: T.getId()
und auf jeder Antwort möchte ich fusionieren dieses Objekt: T
mit der Antwort: ArrayList<E> anotherList
auf einem hashmap: ArrayList<E> anotherList
Mehrere Retrofit2 Anfragen fusioniert auf hashmap mit rxJava2
ich mehrere Anrufe auf der Basis der id machen wollen Hashmap<T, ArrayList<E> anotherList>
und Geben Sie den Wert zurück, nachdem alle Anforderungen abgeschlossen wurden. Gibt es eine Weise, die ich dies mit rxJava
erreichen kann:
//For every `T.getId()`, fetch `ArrayList<E> anotherList`
for(int i=0; i<arrayList.size(); i++){
T object = arrayList.get(i);
fetchData(T.getId());
}
auf jeden onNext()
merge (hashmap.put()) T
mit Antwort ArrayList<E> anotherList
auf Hashmap<T, ArrayList<E> anotherList>
. Nachdem alle Anfragen endgültig hashmap
enthält jene Paare zurückgeben beendet:
retrofit.fetchData(T.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(...)
.merge(...)
.subscribeWith(...)
Gibt es eine Weise, die ich dies erreichen können?