首页 > 解决方案 > 在 Flux 中从一个元素生成两个元素?

问题描述

我有以下内容Flux

val myFlux = Flux.just("a", "b", "duck", "c", "d")

我想将其转换为每次出现duck都会产生两个元素(例如Leg

所以:

myMyFlux.magicTransformation()

应该产生:

"a", "b", "leg", "leg", "c", "d"

标签: kotlinproject-reactor

解决方案


您可以使用flatMap映射duck成两个元素。

val myFlux = Flux.just("a", "b", "duck", "c", "d")

myFlux.flatMap {
    if (it == "duck") {
        Flux.just("leg", "leg")
    } else {
        Mono.just(it)
    }
}.subscribe(System.out::println)

推荐阅读