Saya menggunakan RxJava3 dalam proyek saya dan saya tidak dapat menulis permintaan, saya telah bergulat selama beberapa jam.

Saya memiliki List dan memiliki fungsi yang mengembalikan Single> oleh Stream, saya ingin mendapatkan 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 })
    }
0
Andrey Romanyuk 3 April 2021, 11:50

1 menjawab

Jawaban Terbaik
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 })
}
0
Andrey Romanyuk 3 April 2021, 10:12