reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final Mono<T> doAfterSuccessOrError(BiConsumer<? super T, Throwable> afterSuccessOrError) {
		return onAssembly(new MonoPeekTerminal<>(this, null, null, afterSuccessOrError));
	}
public final Mono<T> doAfterSuccessOrError(BiConsumer<? super T, Throwable> afterSuccessOrError) {
		return onAssembly(new MonoPeekTerminal<>(this, null, null, afterSuccessOrError));
	}
public final Mono < T > doAfterSuccessOrError ( BiConsumer < ? super T , Throwable > afterSuccessOrError ) { return onAssembly ( new MonoPeekTerminal <> ( this , null , null , afterSuccessOrError ) ) ; }
Add behavior triggered after the {@link Mono} terminates, either by completing downstream successfully or with an error.
The arguments will be null depending on success, success with data and error:
<ul>
<li>null, null : completed without data</li>
<li>T, null : completed with data</li>
<li>null, Throwable : failed with/without data</li>
</ul>

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

@param afterSuccessOrError the callback to call after {@link Subscriber#onNext}, {@link Subscriber#onComplete} without preceding {@link Subscriber#onNext} or {@link Subscriber#onError}

@return a new {@link Mono}
Add behavior triggered after the { @link Mono } terminates either by completing downstream successfully or with an error . The arguments will be null depending on success success with data and error : <ul > <li > null null : completed without data< / li > <li > T null : completed with data< / li > <li > null Throwable : failed with / without data< / li > < / ul >