reactor-core/src/main/java/reactor/core/publisher/Flux.java
public static <T> Flux<T> defer(Supplier<? extends Publisher<T>> supplier) {
		return onAssembly(new FluxDefer<>(supplier));
	}
public static <T> Flux<T> defer(Supplier<? extends Publisher<T>> supplier) {
		return onAssembly(new FluxDefer<>(supplier));
	}
Lazily supply a {@link Publisher} every time a {@link Subscription} is made on the
resulting {@link Flux}, so the actual source instantiation is deferred until each
subscribe and the {@link Supplier} can create a subscriber-specific instance.
If the supplier doesn't generate a new instance however, this operator will
effectively behave like {@link #from(Publisher)}.

<p>
<img class="marble" src="doc-files/marbles/deferForFlux.svg" alt="">

@param supplier the {@link Publisher} {@link Supplier} to call on subscribe
@param <T>      the type of values passing through the {@link Flux}

@return a deferred {@link Flux}