Mono#and
просто «объединяет сигналы завершения из текущего моно и другого источника в возвращенный моно void».Он всегда возвращает Mono<Void>
и позволяет координировать завершение двух Mono
с.
Mono#then
позволяет связать два Mono
с друг друга, и окончательный результат будет определяться переданным Mono
в качестве параметра.В этом смысле Mono#then
является более примитивной версией Mono#flatMap
, единственное отличие состоит в том, что внутри Mono#flatMap
у вас есть доступ к результату предыдущего Mono
в цепочке, которую вы можете преобразовать в другую Mono
instance.
Кроме того, при Mono#then
операции будут выполняться последовательно, а при Mono#and
нет гарантии заказа (по крайней мере, из документации).