Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / Живи supply и supply при поискване / Exercises / Късно включване
Решение: Късно включване
Ето едно възможно решение на задачата.
Код
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].