Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Reaktīvā programmēšana / await / Exercises / Sagaidiet solījumu
Risinājums: Sagaidiet solījumu
Šeit ir iespējams risinājums uzdevumam.
Kods
my @jobs =
(start { sleep 0.3; 'slow' }),
(start { sleep 0.1; 'quick' }),
(start { sleep 0.2; 'medium' });
say await @jobs;🦋 Atrodiet programmu failā await-a-promise.raku.
Izvade
(slow quick medium)Komentāri
Visi trīs darbi sākas uzreiz un guļ vienlaikus, tāpēc visa programma aizņem apmēram
0.3sekundes — lēnākā darba ilgumu, nevis visu trīs summu.Lai gan
quickpabeidz pirmais unslowpēdējais, izvade ir(slow quick medium):awaitkatru rezultātu atgriež tajā pašā vietā, kur tā solījums@jobssarakstā. Pabeigšanas secība ietekmē tikai to, kadawaitatgriežas, nekad ne rezultātu izkārtojumu.