В настоящее время я работаю с Spring WebFlux (Kotlin), где я пытаюсь сопоставить тип Mono
с другим типом Flux
.К сожалению, я не получу ожидаемых результатов.
Сначала я запрашиваю наряд, который выдаст: Mono<Outfit>
val outfit = Mono.just(Outfit(
outfitId = "123",
outfits = listOf(listOf("1", "2"), listOf("3", "4"))))
Затем я хочу получить информацию о продукте для каждого идентификатора в атрибуте outfits
.Я пытаюсь добиться этого, вызывая следующую функцию
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
.Но я не вижу способа решить это иначе.У кого-нибудь есть идеи как это решить?