Я пытаюсь использовать оператор flatMap, чтобы сделать два запроса с помощью модификации на Android.Идея состоит в том, чтобы сделать первый запрос для получения пользователей, а затем сделать второй запрос, который мне нужен, чтобы узнать общее количество пользователей, которое я получу, чтобы сделать второй запрос.Вот как я пытаюсь это сделать.
remoteDataSource.requestAuthors()
.flatMap {remoteDataSource.requestAvatars(it.size) }
.subscribeOn(Schedulers.io())
.subscribe {
//here I need the authors and avatars to create the new object
}
Является ли flatMap правильным оператором для этого?Спасибо!
Ответ - Да!
Обновление
В таком случае я должен сделать что-то подобное?
override fun requestAuthors(): Observable<List<AuthorResponse>> {
val authors = mutableListOf<Author>()
val authorResponse = remoteDataSource.requestAuthors()
.doOnNext { authors.addAll(it) }
.flatMap { remoteDataSource.requestAvatars(it.size) }
.subscribeOn(Schedulers.io())
.doOnNext {avatars->
avatars.results.forEach { avatar ->
authors.forEach { author ->
author.avatarUrl = avatar
}
}
}
return authorResponse
}