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));
	}
@ 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.
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 .