reactor-core/src/main/java/reactor/core/publisher/Mono.java
@SuppressWarnings({ "unchecked", "rawtypes" })
	public static <T1, T2, T3, T4, T5> Mono<Tuple5<T1, T2, T3, T4, T5>> zipDelayError(Mono<? extends T1> p1,
			Mono<? extends T2> p2,
			Mono<? extends T3> p3,
			Mono<? extends T4> p4,
			Mono<? extends T5> p5) {
		return onAssembly(new MonoZip(true, a -> Tuples.fromArray((Object[])a), p1, p2, p3, p4, p5));
	}
@SuppressWarnings({ "unchecked", "rawtypes" })
	public static <T1, T2, T3, T4, T5> Mono<Tuple5<T1, T2, T3, T4, T5>> zipDelayError(Mono<? extends T1> p1,
			Mono<? extends T2> p2,
			Mono<? extends T3> p3,
			Mono<? extends T4> p4,
			Mono<? extends T5> p5) {
		return onAssembly(new MonoZip(true, a -> Tuples.fromArray((Object[])a), p1, p2, p3, p4, p5));
	}
Merge given monos into a new {@literal Mono} that will be fulfilled when all of the given {@literal Monos}
have produced an item, aggregating their values into a {@link Tuple5} and delaying errors.
If a Mono source completes without value, all other sources are run to completion then
the resulting {@link Mono} completes empty.
If several Monos error, their exceptions are combined (as suppressed exceptions on a root exception).
<p>
<img class="marble" src="doc-files/marbles/zipDelayErrorFixedSources.svg" alt="">
<p>
@param p1 The first upstream {@link Publisher} to subscribe to.
@param p2 The second upstream {@link Publisher} to subscribe to.
@param p3 The third upstream {@link Publisher} to subscribe to.
@param p4 The fourth upstream {@link Publisher} to subscribe to.
@param p5 The fifth upstream {@link Publisher} to subscribe to.
@param <T1> type of the value from p1
@param <T2> type of the value from p2
@param <T3> type of the value from p3
@param <T4> type of the value from p4
@param <T5> type of the value from p5

@return a {@link Mono}.