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


💪 Або перейдіть одразу до вправ цього розділу.