Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / Живи supply и supply при поискване
Supply при поискване
Потокът при поискване произвежда стойностите си наново за
всяко включване. Supply.from-list е такъв: всяко включване
получава цялата последователност от началото,
независимо от всяко друго включване.
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]И двете включвания получиха и трите стойности. Потокът не „изразходва“ стойностите си при първото включване; той просто се изпълни отново за второто. Точно това поведение искате, когато потокът представя фиксиран източник — списък, файл, заявка, — който всеки абонат трябва да види изцяло.
„При поискване“ е поведението по подразбиране за потоци, изградени от съществуващи данни, защото всеки потребител естествено очаква пълната последователност. Другият вид, живият поток, се държи съвсем различно, както показва следващата тема.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Живи supply и supply при поискване | Тест — Видове supply →
💪 Или преминете направо към упражненията в този
раздел.