public Optional<T> blockOptional() {
		BlockingOptionalMonoSubscriber<T> subscriber = new BlockingOptionalMonoSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet();
	}
public Optional<T> blockOptional() {
		BlockingOptionalMonoSubscriber<T> subscriber = new BlockingOptionalMonoSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet();
	}
public Optional < T > blockOptional ( ) { BlockingOptionalMonoSubscriber < T > subscriber = new BlockingOptionalMonoSubscriber <> ( ) ; Operators . onLastAssembly ( this ) . subscribe ( Operators . toCoreSubscriber ( subscriber ) ) ; return subscriber . blockingGet ( ) ; }
Subscribe to this {@link Mono} and <strong>block indefinitely</strong> until a next signal is
received or the Mono completes empty. Returns an {@link Optional}, which can be used
to replace the empty case with an Exception via {@link Optional#orElseThrow(Supplier)}.
In case the Mono itself errors, the original exception is thrown (wrapped in a
{@link RuntimeException} if it was a checked exception).

<p>
<img class="marble" src="doc-files/marbles/blockOptional.svg" alt="">
<p>
Note that each blockOptional() will trigger a new subscription: in other words, the result
might miss signal from hot publishers.

@return T the result
Subscribe to this { @link Mono } and <strong > block indefinitely< / strong > until a next signal is received or the Mono completes empty . Returns an { @link Optional } which can be used to replace the empty case with an Exception via { @link Optional#orElseThrow ( Supplier ) } . In case the Mono itself errors the original exception is thrown ( wrapped in a { @link RuntimeException } if it was a checked exception ) .