Вы можете использовать метод hasElements()
( do c) из Flux
, чтобы выяснить, есть ли у потока элементы, или нет, а затем, используя flatMapMany
, вернуть конкатенацию, если элементы присутствуют или сам пустой поток, если нет элементов.
fun Flux<String>.prefixWith(rhs: Mono<String>) = this.hasElements().flatMapMany<String> {
if (it) {
rhs.concatWith(this) //when the flux has elements
} else {
this //this would be empty flux
}
}