public final <U> Flux<T> sampleFirst(Function<? super T, ? extends Publisher<U>> samplerFactory) {
    """
	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
    """
		return onAssembly(new FluxSampleFirst<>(this, samplerFactory));
	}
public final <U> Flux<T> sampleFirst(Function<? super T, ? extends Publisher<U>> samplerFactory) {
		return onAssembly(new FluxSampleFirst<>(this, samplerFactory));
	}
public final < U > Flux < T > sampleFirst ( Function < ? super T , ? extends Publisher < U > > samplerFactory ) { return onAssembly ( new FluxSampleFirst <> ( this , samplerFactory ) ) ; }
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
Repeatedly take a value from this { @link Flux } then skip the values that follow before the next signal from a companion sampler { @link Publisher } .