flatMapMany有关Mono <t>转换的问题

时间:2018-10-22 13:56:29

标签: kotlin mono flux flatmap

我目前正在尝试使用Spring WebFlux(Kotlin) 将Mono类型映射到另一Flux类型。不幸的是我不会得到期望 结果。

首先,我请求一件服装,该服装将返回:Mono<Outfit>

val outfit = Mono.just(Outfit(
    outfitId = "123", 
    outfits = listOf(listOf("1", "2"), listOf("3", "4"))))

然后,我想获取outfits属性中每个ID的产品信息。我试图做到这一点 通过调用以下函数

fun products(ids: List<String>): Flux<Product> = "impl left out"

val transformation = outfit.flatMapMany { req ->
    req.outfits.map { products(it) }.toMono()
}

最终结果应该是带有检索到的产品信息的服装清单

val expected = Flux.just(
        listOf(Product("1"), Product("2")),
        listOf(Product("3"), Product("4")))

但是我得到的结果是这样的:

val result = Flux.just(Product("1"), Product("2"), Product("3"), Product("4"))

我认为这是由于flatMapMany函数引起的。但是我没有办法解决这个问题。 有人知道如何解决这个问题吗?

0 个答案:

没有答案