reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final <R> Mono<R> publish(Function<? super Mono<T>, ? extends Mono<? extends
			R>> transform) {
		return onAssembly(new MonoPublishMulticast<>(this, transform));
	}
public final <R> Mono<R> publish(Function<? super Mono<T>, ? extends Mono<? extends
			R>> transform) {
		return onAssembly(new MonoPublishMulticast<>(this, transform));
	}
public final < R > Mono < R > publish ( Function < ? super Mono < T > , ? extends Mono < ? extends R > > transform ) { return onAssembly ( new MonoPublishMulticast <> ( this , transform ) ) ; }
Share a {@link Mono} for the duration of a function that may transform it and
consume it as many times as necessary without causing multiple subscriptions
to the upstream.

@param transform the transformation function
@param <R> the output value type

@return a new {@link Mono}
Share a { @link Mono } for the duration of a function that may transform it and consume it as many times as necessary without causing multiple subscriptions to the upstream .