ich versuche Kettenanfragen mit RxJava + Retrofit + Kotlin zu lernen. Das Tutorial, das ich verfolgte, war RxJava 1.x, also, wenn ich versuche, mit RxJava 2.x zu re-implementieren, kann ich nicht .zip() zu arbeiten.RxJava 1.x .zip() funktioniert nicht auf RxJava 2.0
Es ist eine einfache App mit Star Wars API, die eine Liste von Filmen zurückgibt, undo für jeden Film, holen Sie sich die Charaktere von ihnen.
fun loadMoviesFull(): Observable<Movie> {
return service.listMovies()
.flatMap { filmResults -> Observable.from(filmResults.results) }
.flatMap { film ->
Observable.zip(
Observable.just(Movie(film.title, film.episodeId, ArrayList<Character>())),
Observable.from(film.personUrls)
.flatMap { personUrl ->
service.loadPerson(Uri.parse(personUrl).lastPathSegment)
}
.map { person ->
Character(person!!.name, person.gender)
}
.toList(),
{ movie, characters ->
movie.characters.addAll(characters)
movie
})
}
}
Wenn Sie die gesamte Umsetzung des Tutorials sehen mögen, dies ist die Verbindung (Die Kommentare sind in portugiesisch) ist: http://www.nglauber.com.br/2017/03/rxjava-kotlin-retrofit-star-wars-api.html
Ich möchte nur die Syntax für ir wissen, denn ich kann nicht implementieren auf 2.x.
Vielen Dank und es tut mir leid für mein schlechtes Englisch.