reactor-core/src/main/java/reactor/core/publisher/Mono.java
public static <T> Mono<T> defer(Supplier<? extends Mono<? extends T>> supplier) {
		return onAssembly(new MonoDefer<>(supplier));
	}
public static <T> Mono<T> defer(Supplier<? extends Mono<? extends T>> supplier) {
		return onAssembly(new MonoDefer<>(supplier));
	}
Create a {@link Mono} provider that will {@link Supplier#get supply} a target {@link Mono} to subscribe to for
each {@link Subscriber} downstream.

<p>
<img class="marble" src="doc-files/marbles/deferForMono.svg" alt="">
<p>
@param supplier a {@link Mono} factory
@param <T> the element type of the returned Mono instance
@return a new {@link Mono} factory