flatMapPublisher
的目的是什么?
return factory.retrieveDiskDataStore().isCached()
.flatMapPublisher {
factory.retrieveDataStore(it).getData(token)
}
.flatMap {
Flowable.just(if (it is PickupListDataModel) mapper.mapFromData(it) else null)
}
.flatMap {
saveData(it).toSingle { it }.toFlowable()
}
在此代码中,factory.retrieveDiskDataStore().isCached()
检查信息是否存储在数据库中。
如果没有,则执行以下代码
.flatMapPublisher {
factory.retrieveDataStore(it).getData(token)
}
答案 0 :(得分:2)
来自JavaDocs:
返回基于将指定函数应用于源
Flowable
发出的项目而发出项目的Single
,其中该函数返回Publisher
。
换句话说,Single
会成功获得一个值,您想将其转换为Publisher
生成的值序列(即某些Flowable
,{{ 1}}或其他标准Reactive Streams源)并拥有该项目。