code: @SuppressWarnings("unchecked")
  	public final <T2, V> Flux<V> zipWith(Publisher<? extends T2> source2,
  			int prefetch,
  			BiFunction<? super T, ? super T2, ? extends V> combinator) {
  		return zip(objects -> combinator.apply((T) objects[0], (T2) objects[1]),
  				prefetch,
  				this,
  				source2);
  	}
docs: Zip this {@link Flux} with another {@link Publisher} source, that is to say wait
  for both to emit one element and combine these elements using a {@code combinator}
  {@link BiFunction}
  The operator will continue doing so until any of the sources completes.
  Errors will immediately be forwarded.
  This "Step-Merge" processing is especially useful in Scatter-Gather scenarios.
  <p>
  <img class="marble" src="doc-files/marbles/zipWithOtherUsingZipperForFlux.svg" alt="">
  
  @param source2 The second source {@link Publisher} to zip with this {@link Flux}.
  @param prefetch the request size to use for this {@link Flux} and the other {@link Publisher}
  @param combinator The aggregate function that will receive a unique value from each
  source and return the value to signal downstream
  @param <T2> type of the value from source2
  @param <V> The produced output after transformation by the combinator
  
  @return a zipped {@link Flux}