Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / Supplies en vivo y bajo demanda
Supplies en vivo
Un supply en vivo difunde los valores según ocurren a los
enganches que estén escuchando en ese momento. Creas
uno con un Supplier: el supplier es el extremo emisor, y su
.Supply es el extremo receptor que otros enganchan.
my $supplier = Supplier.new;
my $supply = $supplier.Supply;
my @got;
$supply.tap(-> $v { @got.push($v) });
$supplier.emit(1);
$supplier.emit(2);
say @got; # [1 2]Aquí .emit empuja un valor al supply en vivo, y todos
los enganches actuales lo reciben. El enganche estaba puesto antes de
las emisiones, así que capturó ambos valores.
La diferencia crucial respecto de un supply bajo demanda es el
momento: un supply en vivo no recuerda los valores
pasados. Un enganche añadido después de un emit se perdería
lo que se emitiera antes de suscribirse. Los supplies en vivo son el
modelo adecuado para eventos reales — clics, mensajes, lecturas de
sensores — donde importa «lo que está pasando ahora» y el pasado ya no
está.
En resumen: usa un supply bajo demanda para reproducir una secuencia
fija a cada suscriptor, y un supply en vivo (mediante un
Supplier) para difundir eventos según ocurren.
Navegación del curso
← Quiz — Tipos de supply | Supplies en vivo en acción →
💪 O ve directamente a los ejercicios de esta
sección.