Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / Supplies en vivo y bajo demanda
Supplies bajo demanda
Un supply bajo demanda produce sus valores de nuevo para
cada enganche. Supply.from-list es bajo demanda: cada
enganche recibe la secuencia entera desde el principio,
con independencia de cualquier otro enganche.
my $s = Supply.from-list(1, 2, 3);
my @a;
my @b;
$s.tap(-> $v { @a.push($v) });
$s.tap(-> $v { @b.push($v) });
say @a; # [1 2 3]
say @b; # [1 2 3]Ambos enganches recibieron los tres valores. El supply no «gastó» sus valores en el primer enganche; sencillamente volvió a ejecutarse para el segundo. Este es el comportamiento que quieres cuando un supply representa una fuente fija — una lista, un archivo, una consulta — que todo suscriptor debería ver completa.
Bajo demanda es lo predeterminado para los supplies construidos a partir de datos ya existentes, porque cada consumidor espera de forma natural la secuencia completa. La otra clase, el supply en vivo, se comporta de manera bastante distinta, como muestra el apartado siguiente.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Supplies en vivo y bajo demanda | Quiz — Tipos de supply →
💪 O ve directamente a los ejercicios de esta
sección.