Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Reaktive Programmierung / Live- und On-Demand-Supplies / Exercises / Spät zugeschaltet
Lösung: Spät zugeschaltet
Hier ist eine mögliche Lösung der Aufgabe.
Code
my $supplier = Supplier.new;
my @got;
$supplier.emit(1);
$supplier.Supply.tap(-> $v { @got.push($v) });
$supplier.emit(2);
$supplier.emit(3);
say @got;🦋 Du findest den Quellcode in der Datei a-live-feed.raku.
Ausgabe
[2 3]Kommentare
Der
Supplierist die Sendeseite; sein.Supplyist das, was Sie anzapfen. Ein Live-Supply sendet nur an die Zapfstellen, die im Augenblick jeder Aussendung zuhören.Das
emit(1)geschieht, bevor eine Zapfstelle besteht, es geht also verloren — wie das Einschalten eines Radiosenders, nachdem ein Lied gelaufen ist. Nur2und3, nach der Zapfstelle ausgesandt, werden eingefangen, was[2 3]ergibt.