Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Обещания / Exercises / Свържете обещания във верига

Решение: Свържете обещания във верига

Ето едно възможно решение на задачата.

Код

my $p = start { 'raku' };
my $q = $p.then({ .result.uc });
my $r = $q.then({ .result ~ '!' });
say await $r;

🦋 Намерете програмата във файла promise-result.raku.

Изход

RAKU!

Коментари

  1. Всяко .then изгражда ново обещание, което се изпълнява, щом предишното приключи. Вътре в блока му .result е стойността, дадена от предишното обещание.

  2. Първото продължение превръща 'raku' в 'RAKU'; второто добавя '!'. Изчакването на последното обещание $r минава по цялата верига и дава 'RAKU!' — малък конвейер, в който всяка стъпка преобразува резултата на предишната.

Навигация в курса

Свържете обещания във верига   |   Изчакайте няколко