Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Reaktīvā programmēšana / Dzīvie un pēc pieprasījuma supply

Dzīvie supply

Dzīva supply pārraida vērtības tad, kad tās notiek, tiem pieslēgumiem, kas klausās tajā brīdī. Tādu izveido ar Supplier: piegādātājs ir sūtītājpuse, un tā .Supply ir saņēmējpuse, kurai citi pieslēdzas.

my $supplier = Supplier.new;
my $supply   = $supplier.Supply;

my @got;
$supply.tap(-> $v { @got.push($v) });

$supplier.emit(1);
$supplier.emit(2);

say @got; # [1 2]

Šeit .emit iestumj vērtību dzīvajā supply, un to saņem katrs pašreizējais pieslēgums. Pieslēgums bija vietā pirms izstarošanas, tāpēc tas satvēra abas vērtības.

Būtiskā atšķirība no supply pēc pieprasījuma ir laiks: dzīva supply pagātnes vērtības neatceras. Pieslēgums, kas pievienots pēc emit, palaistu garām visu, kas izstarots pirms tā abonēšanās. Dzīvās supply ir pareizais modelis īstiem notikumiem — klikšķiem, ziņojumiem, sensoru rādījumiem —, kur svarīgs ir tas, «kas notiek tagad», un pagātne ir pagājusi.

Īsumā: izmantojiet supply pēc pieprasījuma, lai nemainīgu virkni atkārtotu katram abonentam, un dzīvu supply (caur Supplier), lai pārraidītu notikumus tad, kad tie notiek.

Kursa navigācija

Viktorīna — Supply veidi   |   Dzīvie supply darbībā


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.