Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio simultanea / Promissa
Concatenare et combinare
Promissa etiam potentiora fiunt cum ea componis. Usitatissima
necessitas est plura simul exspectare.
await indicem promissorum accipit et effectus eorum ordine
reddit:
my @jobs = (start { 1 }), (start { 2 }), (start { 3 });
say await @jobs; # (1 2 3)
say [+] await @jobs; # 6Tria opera simul currunt; await @jobs omnia exspectat et
(1, 2, 3) reddit. Quia effectus eodem ordine ac promissa
redeunt, eos ut solet reducere potes.
Opus etiam in promissum concatenare potes per .then,
quod blocum sequentem currit simul atque promissum perfectum est. Intus,
.result valor promissi originalis est:
my $p = start { 10 };
my $q = $p.then({ .result * 2 });
say await $q; # 20$q novum promissum est quod effectum $p
duplicat. Illud exspectare 20 dat.
Blocus parametrum expressum non habet, itaque promissum perfectum ut
variabilem thematis $_ accipit — quapropter nudum
.result operatur: revera $_.result est. Si
mavis illi promisso nomen dare, utere bloco acuto:
my $q = $p.then(-> $prev { $prev.result * 2 });Hoc eodem prorsus modo se gerit; $prev promissum
originale $p est, et $prev.result valor
eius.
Cum start, await et .then,
integras fistulas operis simultanei describere potes: multa negotia
lancia, effectus eorum compone, et nova negotia ex veteribus aedifica —
omnia sine filo ullo directe tangendo.
Exercitatio
Sequuntur 1 quiz de contentis huius argumenti.
Navigatio cursus
← Quiz — Promissa | Quiz — Promissa combinare →
💪 Vel recta ad exercitationes huius
sectionis i.