Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / react en whenever
Buiten gedefinieerde supplies
Elke whenever tot nu toe maakte zijn supply meteen in de
kop — whenever Supply.from-list(...). Dat leest goed voor
een snel voorbeeld, maar echte programma’s hebben hun gebeurtenisbron
zelden precies op die plek bij de hand. Vaker wordt een supply ergens
anders gebouwd — teruggegeven door een functie, geproduceerd door een
Supplier, of aan je overhandigd door een socket of een
timer — en komt hij als gewone variabele binnen. Een
whenever bekijkt net zo graag een benoemde supply:
my $sensors = Supply.from-list(18, 21, 19);
my $messages = Supply.from-list('hi', 'bye');
react {
whenever $sensors {
say "temperature: $_";
}
whenever $messages {
say "message: $_";
}
}Dit drukt af:
temperature: 18
temperature: 21
temperature: 19
message: hi
message: byeLees whenever $sensors { … } dus als “telkens wanneer de
supply $sensors — waar hij ook vandaan kwam — een waarde
uitzendt, draai deze body”. De inline
whenever Supply.from-list(...) die je eerder zag, is
slechts het bijzondere geval waarin de bron toevallig ter plekke gemaakt
wordt.
Als deze vorm van een buitenblok met binnenblokken je ergens aan doet
denken, heb je gelijk — de volgende pagina
vergelijkt hem met given/when.
Cursusnavigatie
← Quiz — whenever en done | whenever en when →
💪 Of ga direct naar de oefeningen in deze
sectie.