Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Реактивне програмування / Живі supply та supply на вимогу / Вправи / Пізнє підключення
Розв’язання: Пізнє підключення
Ось одне з можливих розв’язань задачі.
Код
my $supplier = Supplier.new;
my @got;
$supplier.emit(1);
$supplier.Supply.tap(-> $v { @got.push($v) });
$supplier.emit(2);
$supplier.emit(3);
say @got;🦋 Знайдіть програму у файлі a-live-feed.raku.
Вивід
[2 3]Коментарі
Supplierє стороною надсилання; підключаються до його.Supply. Живий потік транслює лише тим підключенням, що слухають у мить кожної видачі.emit(1)стається до того, як з’явилося бодай одне підключення, тож його втрачено — як увімкнути радіостанцію після того, як пісня вже відіграла. Захоплено лише2та3, видані після підключення, що дає[2 3].