public final Mono<T> doOnSuccess(Consumer<? super T> onSuccess) {
    """
	Add behavior triggered when the {@link Mono} completes successfully.
	
	<ul>
	<li>null : completed without data</li>
	<li>T: completed with data</li>
	</ul>
	
	<p>
	<img class="marble" src="doc-files/marbles/doOnSuccess.svg" alt="">
	
	@param onSuccess the callback to call on, argument is null if the {@link Mono}
	completes without data
	{@link Subscriber#onNext} or {@link Subscriber#onComplete} without preceding {@link Subscriber#onNext}
	
	@return a new {@link Mono}
    """
		Objects.requireNonNull(onSuccess, "onSuccess");
		return onAssembly(new MonoPeekTerminal<>(this, onSuccess, null, null));
	}
public final Mono<T> doOnSuccess(Consumer<? super T> onSuccess) {
		Objects.requireNonNull(onSuccess, "onSuccess");
		return onAssembly(new MonoPeekTerminal<>(this, onSuccess, null, null));
	}
public final Mono < T > doOnSuccess ( Consumer < ? super T > onSuccess ) { Objects . requireNonNull ( onSuccess , "onSuccess" ) ; return onAssembly ( new MonoPeekTerminal <> ( this , onSuccess , null , null ) ) ; }
Add behavior triggered when the {@link Mono} completes successfully.

<ul>
<li>null : completed without data</li>
<li>T: completed with data</li>
</ul>

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

@param onSuccess the callback to call on, argument is null if the {@link Mono}
completes without data
{@link Subscriber#onNext} or {@link Subscriber#onComplete} without preceding {@link Subscriber#onNext}

@return a new {@link Mono}
Add behavior triggered when the { @link Mono } completes successfully .