我目前正在尝试使用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
函数引起的。但是我没有办法解决这个问题。
有人知道如何解决这个问题吗?