У меня есть 2 наблюдаемых источника, где fetchProductList()
возвращает Observable<Datasource>
, а другой canInvite.execute()
принимает значение и возвращает Single<Boolean>
. Мне нужно составить поток для передачи каждой эмиссии из первого источника во второй таким образом, чтобы я мог вернуть все эмиссии из fetchProductList()
со значением true
в виде списка. Я пытался составить его таким образом, но он выглядит немного неуклюжим. Есть ли лучший/более простой способ сделать это?
fetchProductList()
.map { dataSource -> dataSource.data }
.flatMap{ data ->
Observable.from(data.roles.map { role ->
canInvite.execute(role.key).map { canInvite ->
role to canInvite
}
})
}
.compose { it -> Single.merge(it) }
.filter { it -> it.second == true}
.map { it -> it.first }
.toList()
.subscribe {