Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / Supplies en vivo y bajo demanda / Exercises / Conectarse tarde
Solución: Conectarse tarde
Aquí tienes una posible solución para la tarea.
Código
my $supplier = Supplier.new;
my @got;
$supplier.emit(1);
$supplier.Supply.tap(-> $v { @got.push($v) });
$supplier.emit(2);
$supplier.emit(3);
say @got;🦋 Puedes encontrar el código fuente en el archivo a-live-feed.raku.
Salida
[2 3]Comentarios
El
Supplieres el extremo emisor; su.Supplyes lo que enganchas. Un supply en vivo difunde solo a los enganches que escuchan en el momento de cada emisión.El
emit(1)ocurre antes de que exista ningún enganche, así que se pierde, como sintonizar una emisora de radio después de que haya sonado una canción. Solo2y3, emitidos después del enganche, se capturan, dando[2 3].