ich Retrofit bin mit und ich fühle mich wie rxjava (mit retrolambda) wäre eine gute Passform für den folgenden Fluss sein:Verwenden RxJava und Nachrüstung durch die Liste zu durchlaufen und die Ergebnisse erweitern basierend auf Subqueries
- get Liste Widgets (http)
für jedes Widget
a) eine Liste der Artikel (http) für den gegebene Widget Typen
b) erhalten speichert all
c) den ersten (letzten) Artikel db in Liste und update wi dget.articleName und widget.articleUrl mit den entsprechenden Werten aus diesem Artikel- Transformation zurück zur Liste und vollständige
jedoch unsicher Ich bin, was nach dem Schritt 2a zu tun. Hier ist mein Code so weit
apiService.getWidgets(token)
.flatMapIterable(widgets -> widgets)
.flatMap(widget -> apiService.getArticles(token, widget.type))
...
.toList()
.subscribe(
modifiedWidgets -> saveWidgets(modifiedWidgets),
throwable -> processWidgetError(throwable)
);
ich gespielt habe, um mit einigen Betreibern aber als Verkettungs, ich scheine immer zu verengen zu weit (zB einen Griff an einem einzigen Artikel erhalten) und dann nicht mehr Zugang zu Das Original-Widget , um Änderungen vorzunehmen.
@GET("/widgets")
Observable<List<Widget>> getWidgets(@Header("Authorization") String token);
@GET("/articles")
Observable<List<Article>> getArticles(@Header("Authorization") String token, @Query("type") String type);
Brilliant hinzugefügt haben! Danke, dass Sie sich die Zeit genommen haben, eine so umfassende Antwort zu geben. Mein Wissen von RxJava hat gerade eine weitere Kerbe :) – Damian
Sehr nette Antwort! –
Große Antwort ... –