什么是RxJava2中的flatMapPublisher?

时间:2018-03-21 06:09:33

标签: java android kotlin rx-java rx-java2

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)
                }

1 个答案:

答案 0 :(得分:2)

来自JavaDocs

  

返回基于将指定函数应用于源Flowable发出的项目而发出项目的Single,其中该函数返回Publisher

flatMapPublisher

换句话说,Single会成功获得一个值,您想将其转换为Publisher生成的值序列(即某些Flowable,{{ 1}}或其他标准Reactive Streams源)并拥有该项目。