reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<T> take(long n) {
		if (this instanceof Fuseable) {
			return onAssembly(new FluxTakeFuseable<>(this, n));
		}
		return onAssembly(new FluxTake<>(this, n));
	}
public final Flux<T> take(long n) {
		if (this instanceof Fuseable) {
			return onAssembly(new FluxTakeFuseable<>(this, n));
		}
		return onAssembly(new FluxTake<>(this, n));
	}
Take only the first N values from this {@link Flux}, if available.
<p>
If N is zero, the resulting {@link Flux} completes as soon as this {@link Flux}
signals its first value (which is not not relayed, though).
<p>
<img class="marble" src="doc-files/marbles/take.svg" alt="">
<p>
Note that this operator doesn't manipulate the backpressure requested amount.
Rather, it merely lets requests from downstream propagate as is and cancels once
N elements have been emitted. As a result, the source could produce a lot of
extraneous elements in the meantime. If that behavior is undesirable and you do
not own the request from downstream (e.g. prefetching operators), consider
using {@link #limitRequest(long)} instead.

@param n the number of items to emit from this {@link Flux}

@return a {@link Flux} limited to size N
@see #limitRequest(long)