Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione reattiva / Supply live e su richiesta
Supply live
Un supply dal vivo trasmette i valori man mano che accadono
a qualunque presa sia in ascolto in quel momento. Ne
crei uno con un Supplier: il supplier è l’estremità che
invia, e il suo .Supply è l’estremità che riceve, a cui gli
altri attingono.
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]Qui .emit spinge un valore nel supply dal vivo, e ogni
presa attuale lo riceve. La presa era già al suo posto prima delle
emissioni, quindi ha catturato entrambi i valori.
La differenza cruciale rispetto a un supply su richiesta è il
tempismo: un supply dal vivo non ricorda i valori
passati. Una presa aggiunta dopo un emit si perderebbe
tutto ciò che è stato emesso prima che si abbonasse. I supply dal vivo
sono il modello giusto per gli eventi veri — clic, messaggi, letture di
sensori — dove conta «ciò che sta accadendo ora» e il passato è
andato.
In breve: usa un supply su richiesta per riproporre una sequenza
fissa a ogni abbonato, e un supply dal vivo (attraverso un
Supplier) per trasmettere gli eventi man mano che
accadono.
Navigazione del corso
← Quiz — Tipi di supply | Supply live in azione →
💪 Oppure vai direttamente agli esercizi di questa
sezione.