Курс 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 →
💪 Або перейдіть одразу до вправ цього
розділу.