constructores
Constructores fríos para una cadena de eventos: un valor, un cierre vacío, un future, un generador, un callback create — sin un Stream que ya tuvieras que envolver.
Lección
fxEvents(stream) envuelve un
stream que ya tienes. Estos constructores
son el stream. Se mantienen fríos: envolverlos o
nombrarlos no escucha nada; un terminal
(toList, head, listen) es
lo que pone los eventos a fluir. Esa es la misma regla de honestidad
que el resto de la cadena conserva.
Los simples primero. FxEvents.value(x) emite
x y se cierra — el of/just de
Rx. FxEvents.empty() se cierra sin nada.
FxEvents.never() nunca emite y nunca se cierra;
escuchar cuelga hasta que se cancela, así que es una mención, no una
demo. fromFuture emite el valor del future (o su error)
y se cierra; el future no se observa hasta que llega un listener.
generate(initial, condition, iterate) recorre
initial, iterate(initial), … mientras la condición se
cumple — cada paso es un tick de temporizador, así que un generador
infinito aún puede cancelarse.
Tiempo, después factorías. FxEvents.timer(delay) emite
0 tras el retardo y se cierra; con
every continúa 1, 2, … en ese periodo.
periodic es el reloj que nunca completa
(conteo de ticks cuando se omite el computation) — cancélalo; no le
hagas toList. defer(factory) construye un
stream interior fresco en cada listen — la factoría, no el wrapper;
la cadena se mantiene de suscripción única. using
adquiere un recurso al escuchar, lo refleja y lo libera exactamente
una vez — la contraparte push del
using pull.
fromPattern(add, remove) es el puente típico
on/off. Y
create(init) llama a init con un
EventEmitter: add, addError,
close, y onCancel para el teardown. Un
throw desde init se reenvía y el stream se cierra.
Capa de eventos de fxdart, según el of/just,
EMPTY, NEVER, from,
interval, timer, defer,
generate, fromEventPattern,
using, y el constructor Observable /
create de Rx.
Demo 1 · value, empty, generate
Demo 2 · defer, y fromFuture
Pruébalo tú
Ejercicio: un create que emite 1, 2, 3 y luego se cierra.