Назад к вопросам
IT One
Senior
12
Что делают map и flatMap у Mono?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В реактивном программировании с использованием Project Reactor, Mono представляет собой асинхронный поток, который может содержать 0 или 1 элемент.
-
mapприменяется для преобразования значения внутри Mono. Он принимает функцию, которая преобразует элемент, и возвращает новый Mono с преобразованным значением. -
flatMapиспользуется, когда функция преобразования возвращает другой Mono (или Publisher). Он «распаковывает» вложенный Mono, позволяя работать с асинхронными цепочками.
Пример:
Mono<String> mono = Mono.just("hello");
// map: преобразуем строку в верхний регистр
Mono<String> upperMono = mono.map(String::toUpperCase);
// flatMap: асинхронно преобразуем строку, возвращая Mono
Mono<String> asyncMono = mono.flatMap(s -> Mono.just(s + " world"));
Разница в том, что map работает с синхронным преобразованием, а flatMap — с асинхронным, возвращающим новый Mono.