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