reactor-core/src/main/java/reactor/core/publisher/Mono.java
public final <T2> Mono<Tuple2<T, T2>> zipWhen(Function<T, Mono<? extends T2>> rightGenerator) {
		return zipWhen(rightGenerator, Tuples::of);
	}
public final <T2> Mono<Tuple2<T, T2>> zipWhen(Function<T, Mono<? extends T2>> rightGenerator) {
		return zipWhen(rightGenerator, Tuples::of);
	}
Wait for the result from this mono, use it to create a second mono via the
provided {@code rightGenerator} function and combine both results into a {@link Tuple2}.

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

@param rightGenerator the {@link Function} to generate a {@code Mono} to combine with
@param <T2> the element type of the other Mono instance

@return a new combined Mono