Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reaktiva programado / react kaj whenever
whenever
Unu sola bloko react povas enhavi
plurajn blokojn whenever, ĉiu observanta
malsaman supply. La bloko reagas al tiu supply, kiu eligas sekve,
plenumante la respondan korpon:
my $sum = 0;
react {
whenever Supply.from-list(1, 2, 3) {
$sum += $_;
}
whenever Supply.from-list(10, 20) {
$sum += $_;
}
}
say $sum; # 36Ambaŭ supply estas observataj samtempe. Iliaj valoroj —
1, 2, 3 kaj 10, 20 — ĉiuj fluas en
$sum, kiu finas ĉe 36. La bloko
react finiĝas nur kiam ambaŭ supply estas
finitaj.
Ĉiu whenever reagas sendepende, kaj tiel vi kombinas
fluojn: unu whenever por ĉiu fonto, ĉiuj ene de la sama
react. Vera programo povus observi retan konekton en unu
whenever kaj tempigilon en alia, respondante al ĉiu laŭ la
alveno de ĝiaj eventoj.
Ene de korpo whenever vi havas la eligitan valoron (kiel
$_ aŭ nomitan parametron) kaj povas fari ion ajn per ĝi —
ĝisdatigi staton, eligi al alia supply aŭ eĉ fermi la blokon react frue
per done.
Praktiko
Vin atendas 2 kvizoj pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — react | Kvizo — whenever →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.