Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Обещания / Exercises / Свържете обещания във верига
Решение: Свържете обещания във верига
Ето едно възможно решение на задачата.
Код
my $p = start { 'raku' };
my $q = $p.then({ .result.uc });
my $r = $q.then({ .result ~ '!' });
say await $r;🦋 Намерете програмата във файла promise-result.raku.
Изход
RAKU!Коментари
Всяко
.thenизгражда ново обещание, което се изпълнява, щом предишното приключи. Вътре в блока му.resultе стойността, дадена от предишното обещание.Първото продължение превръща
'raku'в'RAKU'; второто добавя'!'. Изчакването на последното обещание$rминава по цялата верига и дава'RAKU!'— малък конвейер, в който всяка стъпка преобразува резултата на предишната.