Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / Live- en on-demand-supplies

On-demand-supplies

Een on-demand-supply produceert zijn waarden voor elke tap opnieuw. Supply.from-list is on-demand: elke tap krijgt de hele reeks vanaf het begin, onafhankelijk van elke andere tap.

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]

Beide taps ontvingen alle drie de waarden. De supply heeft zijn waarden bij de eerste tap niet “opgebruikt”; hij draaide eenvoudigweg opnieuw voor de tweede. Dat is het gedrag dat je wilt wanneer een supply een vaste bron voorstelt — een lijst, een bestand, een query — die elke abonnee volledig zou moeten zien.

On-demand is de standaard voor supplies die uit bestaande gegevens gebouwd zijn, omdat elke consument van nature de volledige reeks verwacht. De andere soort, een live supply, gedraagt zich heel anders, zoals het volgende onderwerp laat zien.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Live- en on-demand-supplies   |   Quiz — Soorten supply


💪 Of ga direct naar de oefeningen in deze sectie.