reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<T> mergeWith(Publisher<? extends T> other) {
		if (this instanceof FluxMerge) {
			FluxMerge<T> fluxMerge = (FluxMerge<T>) this;
			return fluxMerge.mergeAdditionalSource(other, Queues::get);
		}
		return merge(this, other);
	}
public final Flux<T> mergeWith(Publisher<? extends T> other) {
		if (this instanceof FluxMerge) {
			FluxMerge<T> fluxMerge = (FluxMerge<T>) this;
			return fluxMerge.mergeAdditionalSource(other, Queues::get);
		}
		return merge(this, other);
	}
Merge data from this {@link Flux} and a {@link Publisher} into an interleaved merged
sequence. Unlike {@link #concatWith(Publisher) concat}, inner sources are subscribed
to eagerly.
<p>
<img class="marble" src="doc-files/marbles/mergeWithForFlux.svg" alt="">
<p>
Note that merge is tailored to work with asynchronous sources or finite sources. When dealing with
an infinite source that doesn't already publish on a dedicated Scheduler, you must isolate that source
in its own Scheduler, as merge would otherwise attempt to drain it before subscribing to
another source.

@param other the {@link Publisher} to merge with

@return a new {@link Flux}