Курс языка программирования 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!' — маленький конвейер, где каждый шаг преобразует результат предыдущего.

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

Соедините промисы в цепочку   |   Дождитесь нескольких