code: public final <U> Flux<T> sampleFirst(Function<? super T, ? extends Publisher<U>> samplerFactory) {
  		return onAssembly(new FluxSampleFirst<>(this, samplerFactory));
  	}
docs: Repeatedly take a value from this {@link Flux} then skip the values that follow
  before the next signal from a companion sampler {@link Publisher}.
  
  <p>
  <img class="marble" src="doc-files/marbles/sampleFirstWithSamplerFactory.svg" alt="">
  
  @reactor.discard This operator discards elements that are not part of the sampling.
  
  @param samplerFactory supply a companion sampler {@link Publisher} which signals the end of the skip window
  @param <U> the companion reified type
  
  @return a {@link Flux} sampled to the first item observed in each window closed by the sampler signals