reactor-core/src/main/java/reactor/core/publisher/Flux.java
@Nullable
	public final T blockFirst() {
		BlockingFirstSubscriber<T> subscriber = new BlockingFirstSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet();
	}
@Nullable
	public final T blockFirst() {
		BlockingFirstSubscriber<T> subscriber = new BlockingFirstSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet();
	}
Subscribe to this {@link Flux} and <strong>block indefinitely</strong>
until the upstream signals its first value or completes. Returns that value,
or null if the Flux completes empty. In case the Flux errors, the original
exception is thrown (wrapped in a {@link RuntimeException} if it was a checked
exception).
<p>
Note that each blockFirst() will trigger a new subscription: in other words,
the result might miss signal from hot publishers.

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

@return the first value or null