reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<T> mergeOrderedWith(Publisher<? extends T> other,
			Comparator<? super T> otherComparator) {
		if (this instanceof FluxMergeOrdered) {
			FluxMergeOrdered<T> fluxMerge = (FluxMergeOrdered<T>) this;
			return fluxMerge.mergeAdditionalSource(other, otherComparator);
		}
		return mergeOrdered(otherComparator, this, other);
	}
public final Flux<T> mergeOrderedWith(Publisher<? extends T> other,
			Comparator<? super T> otherComparator) {
		if (this instanceof FluxMergeOrdered) {
			FluxMergeOrdered<T> fluxMerge = (FluxMergeOrdered<T>) this;
			return fluxMerge.mergeAdditionalSource(other, otherComparator);
		}
		return mergeOrdered(otherComparator, this, other);
	}
Merge data from this {@link Flux} and a {@link Publisher} into a reordered merge
sequence, by picking the smallest value from each sequence as defined by a provided
{@link Comparator}. Note that subsequent calls are combined, and their comparators are
in lexicographic order as defined by {@link Comparator#thenComparing(Comparator)}.
<p>
The combination step is avoided if the two {@link Comparator Comparators} are
{@link Comparator#equals(Object) equal} (which can easily be achieved by using the
same reference, and is also always true of {@link Comparator#naturalOrder()}).
<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.
<p>
<img class="marble" src="doc-files/marbles/mergeOrderedWith.svg" alt="">

@param other the {@link Publisher} to merge with
@param otherComparator the {@link Comparator} to use for merging

@return a new {@link Flux}