Ich verwende RxJava, in dem ich eine Reihe von Observables basierend auf einer Bedingung dynamisch erstellen möchte. Sobald ich mit dem Erstellen fertig bin, möchte ich die verschiedenen Werte, die von den Observablen zurückgegeben werden, verarbeiten und dann als einzelnes Beobachtungsobjekt senden, auf das ich mich abonnieren kann. IchRxJava: dynamisch erstellen Observables und senden Sie das endgültige Ergebnis als Observable
List<String> valueList = ....
List<Observable<String>> listOfObservables = new ArrayList<Observable<String>>();
for(int i =; i <valueList.size(); i++){
listOfObservables.add(new SomeClass.doOperation(valueList(i)));
// SomeClass.doOperation will return an Observable<String>
}
return Observable.merge(listOfObservables);
Aber hier möchte ich auf den Werten eine Operation zu tun, emittiert von verschiedenen Observablen im listOfObservable
und schließlich bringen Sie es als eine einzige Observable<String>
Wie in Observable.zip()
,: Hier ist, wie mein Code kann dies tun
return Observable.zip(observable1, observable2, (string1, string2) -> {
// joining final string here
return string1 + string2;
Aber ich kenne die Anzahl der Argumente hier. Bitte lassen Sie mich wissen, wie ich das erreichen kann.
können Sie bitte mehr erklären? Wie kann ich die einzelnen Strings für die Operationen bekommen? – v1shnu
Ich habe eine Beispielverwendung hinzugefügt. Denken Sie daran, dass, wenn Sie sich nicht um Ordnung kümmern, vielleicht "merge" dann "reduce" einfacher sein wird. –
Danke Mann. Das funktioniert großartig! – v1shnu