RxJava 3 映射器

Posted

技术标签:

【中文标题】RxJava 3 映射器【英文标题】:RxJava 3 Mapper 【发布时间】:2021-06-29 21:54:55 【问题描述】:

我在我的项目中使用 RxJava3,但我无法编写请求,我已经绞尽脑汁好几个小时了。

我有 List 并且有一个通过 Stream 返回 Single> 的函数,我想得到一个 Single>>,

fun getMockTopics(streamId: Long): Single<List<Topic>> 
        return Single.just(listOf(Topic(1, "")))
    
typealias SteamTopics = Map<Stream, List<Topic>>

override fun getTopics(streams: List<Stream?>): Single<SteamTopics> 
        return Observable.fromCallable  streams.filterNotNull() .flatMapIterable  it 
            .map  stream ->
                Pair(stream, getMockTopics(streamId = stream.streamId))
            .flatMap 
                TODO("???")
            
            .toMap( it.first ,  it.second )
    

【问题讨论】:

这不是 java,是 kotlin,你有问题吗?请适当地标记问题 【参考方案1】:
fun getMockTopics(streamId: Long): Observable<List<Topic>> 
    return Observable.just(listOf(Topic(1, "")))


override fun getTopics(streams: List<Stream?>): Single<SteamTopics> 
    return Observable.fromCallable  streams.filterNotNull() .flatMapIterable  it 
        .flatMap( stream ->
            getMockTopics(streamId = stream.streamId)
        ,  stream, topics ->
            Pair(stream, topics)
        ).toMap( it.first ,  it.second )

【讨论】:

以上是关于RxJava 3 映射器的主要内容,如果未能解决你的问题,请参考以下文章

Stratio Lucene Index 3.0.9:INet 映射器的用途

MyBatis 生成器 - 生成映射器实现

根据映射器代码中的某些逻辑,将映射器中的一些数据(行)写入单独的目录

纯 Java MyBatis 映射器?

keycloak 客户端协议映射器(脚本映射器)将请求标头添加到令牌中

双层设备映射器 - 自定义 dm-crypt