Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Reaktīvā programmēšana / react un whenever
whenever un when
react bloka forma var likties pazīstama. Ārējs bloks,
kas satur vairākus iekšējus blokus, no kuriem katrs darbojas ar tematu
$_, ir tieši tas, kā raksta given/when.
Ja jums vienas veselas straumes vietā būtu viens temperatūras rādījums,
jūs pēc tā zarotos šādi:
given $temperature {
when 18 { say 'cool' }
when 21 { say 'warm' }
}Līdzība ar react/whenever ir īsta, bet abi
dara ļoti dažādus darbus:
given/whenapstrādā vienu vērtību tepat un tagad.giveniestata$_uz vienu vērtību; katrswhento pārbauda ($_ ~~ 18), izpildās pirmā sakritība, un bloks ir beidzies. Tas ir parasts, sinhrons nosacījums.react/wheneverapstrādā daudzas vērtības laika gaitā.whenevernesalīdzina$_ar paraugu — tas abonē supply, un tā ķermenis izpildās katrai vērtībai, ko šī supply izstaro, kad vien šī vērtība pienāk. Visiwheneverir dzīvi vienlaikus, unreactturpina bloķēt, līdz pabeigta ir katra no to supply.
Tātad when jautā: «vai šī viena vērtība atbilst?», kamēr
whenever saka: «katrai vērtībai, ko šī straume jebkad
radīs, dari šo». Tas pats skelets, ļoti dažādi mūži: vienreiz izvēlēts
zars pret reakciju, kas atkārtojas atkal un atkal, notikumiem
pienākot.
Kursa navigācija
← Ārpusē definēti supply | Divi taimeri →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.