reactor-core/src/main/java/reactor/core/publisher/Mono.java
@SafeVarargs
	public static <T> Mono<T> first(Mono<? extends T>... monos) {
		return onAssembly(new MonoFirst<>(monos));
	}
@SafeVarargs
	public static <T> Mono<T> first(Mono<? extends T>... monos) {
		return onAssembly(new MonoFirst<>(monos));
	}
Pick the first {@link Mono} to emit any signal (value, empty completion or error)
and replay that signal, effectively behaving like the fastest of these competing
sources.
<p>
<img class="marble" src="doc-files/marbles/firstForMono.svg" alt="">
<p>
@param monos The deferred monos to use.
@param <T> The type of the function result.

@return a new {@link Mono} behaving like the fastest of its sources.