Курс по 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


💪 Или преминете направо към упражненията в този раздел.