code: public static <R> Mono<R> zip(final Iterable<? extends Mono<?>> monos, Function<? super Object[], ? extends R> combinator) {
  		return onAssembly(new MonoZip<>(false, combinator, monos));
  	}
docs: Aggregate 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 according to the provided combinator function.
  An error or <strong>empty</strong> completion of any source will cause other sources
  to be cancelled and the resulting Mono to immediately error or complete, respectively.
  
  <p>
  <img class="marble" src="doc-files/marbles/zipIterableSourcesForMono.svg" alt="">
  <p>
  
  @param monos The monos to use.
  @param combinator the function to transform the combined array into an arbitrary
  object.
  @param <R> the combined result
  
  @return a {@link Mono}.