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

  1. Visi trīs darbi sākas uzreiz un guļ vienlaikus, tāpēc visa programma aizņem apmēram 0.3 sekundes — lēnākā darba ilgumu, nevis visu trīs summu.

  2. Lai gan quick pabeidz pirmais un slow pēdējais, izvade ir (slow quick medium): await katru rezultātu atgriež tajā pašā vietā, kur tā solījums @jobs sarakstā. Pabeigšanas secība ietekmē tikai to, kad await atgriežas, nekad ne rezultātu izkārtojumu.

Kursa navigācija

Sagaidiet solījumu   |   Sagaidiet supply