reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<T> delayUntil(Function<? super T, ? extends Publisher<?>> triggerProvider) {
		return concatMap(v -> Mono.just(v)
		                          .delayUntil(triggerProvider));
	}
public final Flux<T> delayUntil(Function<? super T, ? extends Publisher<?>> triggerProvider) {
		return concatMap(v -> Mono.just(v)
		                          .delayUntil(triggerProvider));
	}
Subscribe to this {@link Flux} and generate a {@link Publisher} from each of this
Flux elements, each acting as a trigger for relaying said element.
<p>
That is to say, the resulting {@link Flux} delays each of its emission until the
associated trigger Publisher terminates.
<p>
In case of an error either in the source or in a trigger, that error is propagated
immediately downstream.
Note that unlike with the {@link Mono#delayUntil(Function) Mono variant} there is
no fusion of subsequent calls.
<p>
<img class="marble" src="doc-files/marbles/delayUntilForFlux.svg" alt="">

@param triggerProvider a {@link Function} that maps each element into a
{@link Publisher} whose termination will trigger relaying the value.

@return this Flux, but with elements delayed until their derived publisher terminates.