Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio reactiva / await
Promissum exspectare
await promissum accipit, illud perficere exspectat, et
effectum eius reddit:
my $p = start { 7 * 6 };
say await $p; # 42Programma ad await tantum quantum opus est consistit,
deinde cum valore quem promissum produxit pergit.
Datis pluribus promissis, await omnia
exspectat et effectus eorum eodem ordine ac promissa in indice
reddit:
my @jobs = (start { 5 }), (start { 10 }), (start { 15 });
say await @jobs; # (5 10 15)
say [+] await @jobs; # 30Negotia simul currunt, sed await @jobs non redit donec
unumquodque perfectum sit. Unusquisque effectus deinde eodem loco sedet
quo promissum eius in @jobs — quodcumque negotium forte
primum finivit.
Si promissum exspectatum fractum erat — blocus eius
exceptionem iecit — await illam exceptionem in loco ipsius
await rursus iacit. Hoc significat errores in opere fundi
ibi emergere ubi illud exspectas, ita ut eos per usitata
try / CATCH ex parte de exceptionibus tractare
possis:
my $p = start { die 'no such file' };
my $result = try await $p;
say $result // "the job failed: $!";Hoc imprimit:
the job failed: no such filedie in filo fundi accidit, sed exceptio cum promisso
iter facit et ad await emergit. try illam ibi
capit, $result indefinitum et errorem in $!
relinquens — itaque defectus in opere simultaneo prorsus ut quaelibet
alia exceptio tractatur. Exspectare igitur non solum de valore
accipiendo est; est momentum quo opus simultaneum ad fluxum principalem
redit, cum effectibus et erroribus pariter.
Exercitatio
Sequuntur 2 quiz de contentis huius argumenti.
Navigatio cursus
← await | Quiz — await →
💪 Vel recta ad exercitationes huius sectionis
i.