@Nullable
	public final T blockFirst(Duration timeout) {
		BlockingFirstSubscriber<T> subscriber = new BlockingFirstSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet(timeout.toMillis(), TimeUnit.MILLISECONDS);
	}
@Nullable
	public final T blockFirst(Duration timeout) {
		BlockingFirstSubscriber<T> subscriber = new BlockingFirstSubscriber<>();
		Operators.onLastAssembly(this).subscribe(Operators.toCoreSubscriber(subscriber));
		return subscriber.blockingGet(timeout.toMillis(), TimeUnit.MILLISECONDS);
	}
@ Nullable public final T blockFirst ( Duration timeout ) { BlockingFirstSubscriber < T > subscriber = new BlockingFirstSubscriber <> ( ) ; Operators . onLastAssembly ( this ) . subscribe ( Operators . toCoreSubscriber ( subscriber ) ) ; return subscriber . blockingGet ( timeout . toMillis ( ) , TimeUnit . MILLISECONDS ) ; }
Subscribe to this {@link Flux} and <strong>block</strong> until the upstream
signals its first value, completes or a timeout expires. 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). If the provided timeout expires,a {@link RuntimeException} is thrown.
<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/blockFirstWithTimeout.svg" alt="">

@param timeout maximum time period to wait for before raising a {@link RuntimeException}
@return the first value or null
Subscribe to this { @link Flux } and <strong > block< / strong > until the upstream signals its first value completes or a timeout expires . 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 ) . If the provided timeout expires a { @link RuntimeException } is thrown . <p > Note that each blockFirst () will trigger a new subscription : in other words the result might miss signal from hot publishers .