Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reaktiva programado / await / Atendi promeson
Kvizo — await kaj sleep
Kion faras la jena programo?
my $p = start { sleep 2; 42 };
say 'waiting';
say await $p;| 1 | Presas waiting tuj, poste presas 42 ĉirkaŭ du sekundojn poste |
| 0 | Paŭzas dum du sekundoj, poste presas waiting kaj 42 kune |
| 0 | Presas waiting kaj 42 tuj — la dormo okazas fone |
| 0 | Presas waiting, poste Promise — vi ne povas atendi dormantan promeson |
start redonas promeson tuj — la bloko,
kun sia sleep, kuras sur fona fadeno. Do
say 'waiting' plenumiĝas senprokraste. Estas
await, kiu blokas: la programo paŭzas tie, ĝis la fona
bloko finas sian dusekundan dormeton kaj produktas 42, kiu
tiam estas presata. La paŭzo apartenas al la linio await,
ne al la linio start.
Kursa navigado
← Kvizo — await | Atendi la finon →