Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Concurrent programmeren / Promises
start en await
Het sleutelwoord start draait een blok op de achtergrond
en geeft meteen een Promise terug:
my $p = start { 2 + 2 };Het werk gebeurt op Raku’s threadpool terwijl je programma doorloopt.
Om het resultaat te krijgen gebruik je await, dat wacht tot
de promise klaar is en je haar waarde geeft:
my $p = start { 2 + 2 };
say await $p; # 4await blokkeert precies lang genoeg voor de voltooiing
van de promise en geeft daarna terug wat het blok opleverde — hier
4. Als het werk al klaar is tegen de tijd dat je afwacht,
krijg je het resultaat meteen.
Dit paar — start om te starten, await om op
te halen — vormt de kern van op promises gebaseerde concurrency. Je kunt
meerdere stukken werk starten, ze tegelijk laten lopen, en hun
resultaten afwachten wanneer je er klaar voor bent, en precies daarop
bouwt het volgende onderwerp voort.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Promises | Quiz — Promises →
💪 Of ga direct naar de oefeningen in deze
sectie.