Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Промисы / Exercises / Дождитесь нескольких
Решение: Дождитесь нескольких
Вот один из возможных вариантов решения задачи.
Код
my @words = <apple pear plum>;
my @jobs = @words.map(-> $w { start { $w.uc } });
say await @jobs;🦋 Исходный код можно найти в файле await-many.raku.
Вывод
(APPLE PEAR PLUM)Комментарии
@words.map(-> $w { start { $w.uc } })превращает каждое слово в собственный промис, поэтому все три переводятся в верхний регистр конкурентно. Стрелочный блок даёт слову имя$w, так что каждый промис захватывает нужное.await @jobsдожидается всего списка и отдаёт результаты в исходном порядке, давая(APPLE PEAR PLUM).