reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final <V> Mono<V> transform(Function<? super Mono<T>, ? extends Publisher<V>> transformer) {
		return onAssembly(from(transformer.apply(this)));
	}
public final <V> Mono<V> transform(Function<? super Mono<T>, ? extends Publisher<V>> transformer) {
		return onAssembly(from(transformer.apply(this)));
	}
Transform this {@link Mono} in order to generate a target {@link Mono}. Unlike {@link #compose(Function)}, the
provided function is executed as part of assembly.

<pre>
Function<Mono, Mono> applySchedulers = mono -> mono.subscribeOn(Schedulers.io())
.publishOn(Schedulers.parallel());
mono.transform(applySchedulers).map(v -> v * v).subscribe();
</pre>
<p>
<img class="marble" src="doc-files/marbles/transformForMono.svg" alt="">

@param transformer the {@link Function} to immediately map this {@link Mono} into a target {@link Mono}
instance.
@param <V> the item type in the returned {@link Mono}

@return a new {@link Mono}
@see #compose(Function) compose(Function) for deferred composition of {@link Mono} for each {@link Subscriber}
@see #as(Function) as(Function) for a loose conversion to an arbitrary type