Spring Reactor List<Mono<Int>> 序列到 Mono<List<Int>>

Spring Reactor List<Mono<Int>> sequence to Mono<List<Int>>

objective 是排序一个 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)
    }
val listOfMono: Mono<List<Mono<Int>>> = foo(10).flatMap {
    Flux.fromIterable(doubleUp(it))
            .collectList()
}

您没有办法跳过 Flux,但无论如何它都是内部内容。