reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <V> Flux<V> compose(Function<? super Flux<T>, ? extends Publisher<V>> transformer) {
		return defer(() -> transformer.apply(this));
	}
public final <V> Flux<V> compose(Function<? super Flux<T>, ? extends Publisher<V>> transformer) {
		return defer(() -> transformer.apply(this));
	}
Defer the transformation of this {@link Flux} in order to generate a target {@link Flux} type.
A transformation will occur for each {@link Subscriber}. For instance:
<blockquote><pre>
flux.compose(original -> original.log());
</pre></blockquote>
<p>
<img class="marble" src="doc-files/marbles/composeForFlux.svg" alt="">

@param transformer the {@link Function} to lazily map this {@link Flux} into a target {@link Publisher}
instance for each new subscriber
@param <V> the item type in the returned {@link Publisher}

@return a new {@link Flux}
@see #transform  transform() for immmediate transformation of {@link Flux}
@see #as as() for a loose conversion to an arbitrary type