Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / await
Wachten op voltooiing
await is de expliciete manier om te wachten, maar
reactieve code wacht ook — alleen impliciet. Een react-blok
is pas klaar wanneer alle supplies die het bekijkt klaar zijn, wat je
dezelfde garantie “alles is voltooid” geeft:
my @values;
react {
whenever Supply.from-list(2, 4, 6) {
@values.push($_);
}
}
say [+] @values; # 12De say draait pas nadat het react-blok
klaar is, dus bevat @values al elke uitgezonden waarde. In
feite heeft het react-blok de stroom voor je afgewacht.
Dit is een nuttig patroon: gebruik een react-blok om
alles wat een supply uitzendt te verzamelen, en werk daarna op de
volgende regel met het verzamelde resultaat, in de wetenschap dat de
stroom compleet is. Of je nu met await op een promise wacht
of met react op een stroom, het principe is hetzelfde —
pauzeer tot het gelijktijdige werk klaar is en ga daarna verder met de
resultaten.
Cursusnavigatie
← Quiz — await en sleep | Wacht op een promise →
💪 Of ga direct naar
de oefeningen in deze sectie.