【发布时间】:2019-08-22 23:13:53
【问题描述】:
我有 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 {
【问题讨论】:
标签: android rx-java reactive-programming rx-android rx-kotlin