Sobes.tech
Назад к вопросам
Senior
12

Что делают map и flatMap у Mono?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

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.