Я хочу связать одно моно после каждого события потока. Издателю моно потребуется информация о каждом событии, опубликованном потоком. Ответ должен быть потоком с данными о событии потока и моно-ответом.
После раскопок я получаю карту внутри flatMap. Код выглядит так:
override fun searchPets(petSearch: PetSearch): Flux<Pet> {
return petRepository
.searchPets(petSearch) // returns Flux<pet>
.flatMap { pet ->
petService
.getCollarForMyPet() // returns Mono<collar>
.map { collar -> PetConverter.addCollarToPet(pet, collar) } //returns pet (now with with collar)
}
}
Мои основные опасения:
- Пахнет ли код при использовании карты внутри FlatMap?
- Будет ли содержимое переменной питомца страдать от условий гонки с приближением нескольких событий потока, а также моно-событий?
- Есть ли лучший способ подойти к такому поведению?