Проблема с flatMapMany при преобразовании Mono <T> - PullRequest
0 голосов
/ 22 октября 2018

В настоящее время я работаю с 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.Но я не вижу способа решить это иначе.У кого-нибудь есть идеи как это решить?

...