reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final <T2, O> Mono<O> zipWith(Mono<? extends T2> other,
			BiFunction<? super T, ? super T2, ? extends O> combinator) {
		if (this instanceof MonoZip) {
			@SuppressWarnings("unchecked") MonoZip<T, O> o = (MonoZip<T, O>) this;
			Mono<O> result = o.zipAdditionalSource(other, combinator);
			if (result != null) {
				return result;
			}
		}

		return zip(this, other, combinator);
	}
public final <T2, O> Mono<O> zipWith(Mono<? extends T2> other,
			BiFunction<? super T, ? super T2, ? extends O> combinator) {
		if (this instanceof MonoZip) {
			@SuppressWarnings("unchecked") MonoZip<T, O> o = (MonoZip<T, O>) this;
			Mono<O> result = o.zipAdditionalSource(other, combinator);
			if (result != null) {
				return result;
			}
		}

		return zip(this, other, combinator);
	}
public final < T2 , O > Mono < O > zipWith ( Mono < ? extends T2 > other , BiFunction < ? super T , ? super T2 , ? extends O > combinator ) { if ( this instanceof MonoZip ) { @ SuppressWarnings ( "unchecked" ) MonoZip < T , O > o = ( MonoZip < T , O > ) this ; Mono < O > result = o . zipAdditionalSource ( other , combinator ) ; if ( result != null ) { return result ; } } return zip ( this , other , combinator ) ; }
Combine the result from this mono and another into an arbitrary {@code O} object,
as defined by the provided {@code combinator} function.
<p>
An error or <strong>empty</strong> completion of any source will cause the other source
to be cancelled and the resulting Mono to immediately error or complete, respectively.

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

@param other the {@link Mono} to combine with
@param combinator a {@link BiFunction} combinator function when both sources
complete
@param <T2> the element type of the other Mono instance
@param <O> the element type of the combination

@return a new combined Mono
Combine the result from this mono and another into an arbitrary { @code O } object as defined by the provided { @code combinator } function . <p > An error or <strong > empty< / strong > completion of any source will cause the other source to be cancelled and the resulting Mono to immediately error or complete respectively .