Когда использовать .flatMap () для Mono вместо простого вызова функции для значения? - PullRequest
0 голосов
/ 17 июня 2019

Я смотрю на некоторый код, где .flatMap вызывался на Mono - я прошел через некоторые PR-обсуждения на Rx GitHubs о добавлении такой функциональности, но я не совсем понимаю, почему кто-то это сделал:Мне кажется, что flatMap изначально предназначен для применения функции к 1 ... n элементам.Применение функции к 0 ... 1 элементам может быть выполнено одним вызовом функции.

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете использовать .map(), если оно не блокирует.

В противном случае ваше внутреннее преобразование вернет Mono, которое завершится в будущем (например, сетевой вызов), и вы должны подписаться на него с .flatMap вместо блокировки обработки.

flatMap работает с любым Publisher<T> и работает с любым 0..n, где n также может быть 0.

Если вам нужно преобразовать один элемент в несколько (например, разделить строку), тогда вы можете использовать flatMapIterable, он имеет меньшие накладные расходы, чем flatMap.

...