Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio simultanea / Promissa
Promissum proprium 🆕
Omne promissum hactenus ex start venit. Sed unum etiam
directe creare potes per Promise.new — promissum quod
nondum finivit — idque ipse componere cum effectus (vel nuntius) paratus
est. .keep illud valore implet:
my $p = Promise.new; # promissum novum, nondum compositum
$p.keep(42); # imple illud valore
say await $p; # 42.break casus defectus est. Promissum fractum exspectare
errorem rursus iacit, sicut pro bloco start qui mortuus est — et si
nihil illud capit, exceptio programma sistit:
my $p = Promise.new;
$p.break('disk full');
say await $p; # hic moritur cum 'disk full'
say 'never reached'; # haec linea non curriturUt pergas, cape defectum per try, prorsus ut circa
quemlibet codicem qui mori potest facias:
my $p = Promise.new;
$p.break('disk full');
my $result = try await $p;
say $result // "the job failed: $!"; # the job failed: disk fullSi exitus iam notus est, duo compendia promissum faciunt quod iam
compositum incipit: Promise.kept($value) et
Promise.broken($error).
say await Promise.kept(7); # 7Cur promissum manu facere? Quia non omnis effectus ex bloco
start venit. Eventus qui postea accidit, nuntius qui
advenit, revocatio ex alia bibliotheca — Promise.new sinit
te quidlibet horum in promissum vertere quod reliquum programmatis
await et componere potest sicut quodlibet aliud.
Navigatio cursus
← Quiz — Promissa combinare | Status promissi 🆕 →
💪 Vel recta ad exercitationes huius
sectionis i.