Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / react и whenever
Блокът react
Блокът react е мястото, където живеят реакциите. Вътре в
него whenever казва „щом този поток подаде стойност,
изпълни това тяло“. Блокът react след това чака, докато
всеки следен от него поток не приключи:
my $sum = 0;
react {
whenever Supply.from-list(1, 2, 3) {
$sum += $_;
}
}
say $sum; # 6Тялото на whenever се изпълнява по веднъж за всяка
стойност — 1, 2, 3 — и я добавя
към $sum. Стойността на темата е достъпна като
$_ (можете да я именувате и с -> $v).
Ключовото поведение е, че react
блокира, докато потоците му не приключат. Едва след
като Supply.from-list подаде всичките си стойности, блокът
react завършва и програмата преминава към say.
Затова $sum вече е 6 в момента на
отпечатването: блокът react е изчакал цялата струя.
Това прави react естествено място за събиране на
резултати от струя: подгответе реакциите, оставете го да се доизпълни и
после използвайте събраното.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← react и whenever | Тест — react →
💪 Или преминете направо към упражненията в този
раздел.