Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / Live- en on-demand-supplies / Exercises / Laat aanhaken
Oplossing: Laat aanhaken
Hier is een mogelijke oplossing voor de taak.
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;🦋 Je kunt de broncode vinden in het bestand a-live-feed.raku.
Uitvoer
[2 3]Opmerkingen
De
Supplieris de verzendkant; zijn.Supplyis wat je aftapt. Een live supply zendt alleen uit naar de taps die op het moment van elke uitzending luisteren.De
emit(1)gebeurt voordat er een tap bestaat, dus gaat hij verloren — als afstemmen op een radiostation nadat een lied al gespeeld is. Alleen2en3, die na de tap uitgezonden zijn, worden opgevangen, wat[2 3]geeft.