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