目标是对List<Mono<Int>>
至Mono<List<Int>>
进行排序。 flatMap
的主体使用Kotlin代码段中的Mono.block()
进行了此操作。如果我想保留Mono<List<Int>>
而不是Flux<Int>
,有没有比这更好的方法了?谢谢
fun foo(i: Int): Mono<Int> = Mono.just(i)
fun doubleUp(i: Int): List<Mono<Int>> {
return listOf(Mono.just(i * 2), Mono.just((i + 1) * 2), Mono.just((i + 2) * 2))
}
val listOfMono: Mono<ArrayList<Int>> = foo(10).flatMap {
val xs = doubleUp(it)
val ys = ArrayList<Int>()
xs.forEach{ys.add(it.block())} // Mono.block()
Mono.just(ys)
}
答案 0 :(得分:0)
val listOfMono: Mono<List<Mono<Int>>> = foo(10).flatMap {
Flux.fromIterable(doubleUp(it))
.collectList()
}
您没有跳过Flux
的方法,但这仍然是内部的东西。