reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <V> Flux<V> concatMap(Function<? super T, ? extends Publisher<? extends V>>
			mapper, int prefetch) {
		return onAssembly(new FluxConcatMap<>(this, mapper, Queues.get(prefetch), prefetch,
				FluxConcatMap.ErrorMode.IMMEDIATE));
	}
public final <V> Flux<V> concatMap(Function<? super T, ? extends Publisher<? extends V>>
			mapper, int prefetch) {
		return onAssembly(new FluxConcatMap<>(this, mapper, Queues.get(prefetch), prefetch,
				FluxConcatMap.ErrorMode.IMMEDIATE));
	}
public final < V > Flux < V > concatMap ( Function < ? super T , ? extends Publisher < ? extends V > > mapper , int prefetch ) { return onAssembly ( new FluxConcatMap <> ( this , mapper , Queues . get ( prefetch ) , prefetch , FluxConcatMap . ErrorMode . IMMEDIATE ) ) ; }
Transform the elements emitted by this {@link Flux} asynchronously into Publishers,
then flatten these inner publishers into a single {@link Flux}, sequentially and
preserving order using concatenation.
<p>
There are three dimensions to this operator that can be compared with
{@link #flatMap(Function) flatMap} and {@link #flatMapSequential(Function) flatMapSequential}:
<ul>
<li><b>Generation of inners and subscription</b>: this operator waits for one
inner to complete before generating the next one and subscribing to it.</li>
<li><b>Ordering of the flattened values</b>: this operator naturally preserves
the same order as the source elements, concatenating the inners from each source
element sequentially.</li>
<li><b>Interleaving</b>: this operator does not let values from different inners
interleave (concatenation).</li>
</ul>

<p>
Errors will immediately short circuit current concat backlog. The prefetch argument
allows to give an arbitrary prefetch size to the inner {@link Publisher}.

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

@reactor.discard This operator discards elements it internally queued for backpressure upon cancellation.

@param mapper the function to transform this sequence of T into concatenated sequences of V
@param prefetch the inner source produced demand
@param <V> the produced concatenated type

@return a concatenated {@link Flux}
Transform the elements emitted by this { @link Flux } asynchronously into Publishers then flatten these inner publishers into a single { @link Flux } sequentially and preserving order using concatenation . <p > There are three dimensions to this operator that can be compared with { @link #flatMap ( Function ) flatMap } and { @link #flatMapSequential ( Function ) flatMapSequential } : <ul > <li > <b > Generation of inners and subscription< / b > : this operator waits for one inner to complete before generating the next one and subscribing to it . < / li > <li > <b > Ordering of the flattened values< / b > : this operator naturally preserves the same order as the source elements concatenating the inners from each source element sequentially . < / li > <li > <b > Interleaving< / b > : this operator does not let values from different inners interleave ( concatenation ) . < / li > < / ul >