Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Reaktive Programmierung / await
Auf den Abschluss warten
await ist der ausdrückliche Weg zu warten, aber
reaktiver Code wartet auch — nur unausgesprochen. Ein
react-Block ist erst fertig, wenn alle Supplies, die er
beobachtet, fertig sind, was Ihnen dieselbe Zusicherung „alles ist
erledigt“ gibt:
my @values;
react {
whenever Supply.from-list(2, 4, 6) {
@values.push($_);
}
}
say [+] @values; # 12Das say läuft erst, nachdem der
react-Block fertig ist, @values enthält also bereits jeden
ausgesandten Wert. Im Grunde hat der react-Block den Strom
für Sie abgewartet.
Das ist ein nützliches Vorgehen: Verwenden Sie einen
react-Block, um alles zu sammeln, was ein Supply aussendet,
und arbeiten Sie dann in der nächsten Zeile mit dem Gesammelten, in der
Gewissheit, dass der Strom vollständig ist. Ob Sie mit
await auf ein Promise oder mit react auf einen
Strom warten, das Grundmuster ist dasselbe — anhalten, bis die
nebenläufige Arbeit fertig ist, und dann mit ihren Ergebnissen
weitermachen.
Kursnavigation
← Quiz — await und sleep | Warten Sie auf ein Promise →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.