reactor-core/src/main/java/reactor/core/publisher/Flux.java
public static <T> Flux<T> push(Consumer<? super FluxSink<T>> emitter) {
		return onAssembly(new FluxCreate<>(emitter, OverflowStrategy.BUFFER, FluxCreate.CreateMode.PUSH_ONLY));
	}
public static <T> Flux<T> push(Consumer<? super FluxSink<T>> emitter) {
		return onAssembly(new FluxCreate<>(emitter, OverflowStrategy.BUFFER, FluxCreate.CreateMode.PUSH_ONLY));
	}
public static < T > Flux < T > push ( Consumer < ? super FluxSink < T > > emitter ) { return onAssembly ( new FluxCreate <> ( emitter , OverflowStrategy . BUFFER , FluxCreate . CreateMode . PUSH_ONLY ) ) ; }
Programmatically create a {@link Flux} with the capability of emitting multiple
elements from a single-threaded producer through the {@link FluxSink} API. For
a multi-threaded capable alternative, see {@link #create(Consumer)}.
<p>
<img class="marble" src="doc-files/marbles/push.svg" alt="">
<p>
This Flux factory is useful if one wants to adapt some other single-threaded
multi-valued async API and not worry about cancellation and backpressure (which is
handled by buffering all signals if the downstream can't keep up).
<p>
For example:

<pre><code>
Flux.&lt;String&gt;push(emitter -&gt; {

ActionListener al = e -&gt; {
emitter.next(textField.getText());
};
// without cleanup support:

button.addActionListener(al);

// with cleanup support:

button.addActionListener(al);
emitter.onDispose(() -> {
button.removeListener(al);
});
});
</code></pre>

@reactor.discard The {@link FluxSink} exposed by this operator buffers in case of
overflow. The buffer is discarded when the main sequence is cancelled.

@param <T> The type of values in the sequence
@param emitter Consume the {@link FluxSink} provided per-subscriber by Reactor to generate signals.
@return a {@link Flux}
@see #create(Consumer)
Programmatically create a { @link Flux } with the capability of emitting multiple elements from a single - threaded producer through the { @link FluxSink } API . For a multi - threaded capable alternative see { @link #create ( Consumer ) } . <p > <img class = marble src = doc - files / marbles / push . svg alt = > <p > This Flux factory is useful if one wants to adapt some other single - threaded multi - valued async API and not worry about cancellation and backpressure ( which is handled by buffering all signals if the downstream can t keep up ) . <p > For example :