Я думаю, что вы хотите flatMap
. flatMap
является оператором, где вы можете испустить другую наблюдаемую информацию, основанную на элементе наблюдаемой.
val obs: Observable<List<User>>
obs.flatMap { users: List<User> ->
serviceWhichEmitsObservable.doMagic(users)
}
flatMap-Operator
Если вы хотите, чтобы пользователи отдельно, вы можете конвертировать Observable> -> Obsersvable с fromIterable. Смотрите этот ответ: RxJava - получить каждый элемент в списке
val obs: Observable<List<User>>
obs
.flatMap { users: List<User> -> Observable.fromIterable(users)
.flatMap { user: User -> serviceWhichEmitsObservable.doMagic(user) }
После перечитывания вашего вопроса, я думаю, что вы хотите это: List<User>
-> List<Integer>
и передать этот список в службу. Вы должны сначала отобразить список. Это не имеет ничего общего с RX. Тем не менее:
val obs: Observable<List<User>>
obs
.map { users: List<User> -> users.map { it.id } }
.flatMap { userIds: List<Integer> -> serviceWhichEmitsObservable.doMagic(userIds) }