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.

Supplies en vivo y bajo demanda   |   Quiz — Tipos de supply


💪 O ve directamente a los ejercicios de esta sección.