Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Промисы / Exercises / Дождитесь нескольких

Решение: Дождитесь нескольких

Вот один из возможных вариантов решения задачи.

Код

my @words = <apple pear plum>;
my @jobs = @words.map(-> $w { start { $w.uc } });
say await @jobs;

🦋 Исходный код можно найти в файле await-many.raku.

Вывод

(APPLE PEAR PLUM)

Комментарии

  1. @words.map(-> $w { start { $w.uc } }) превращает каждое слово в собственный промис, поэтому все три переводятся в верхний регистр конкурентно. Стрелочный блок даёт слову имя $w, так что каждый промис захватывает нужное.

  2. await @jobs дожидается всего списка и отдаёт результаты в исходном порядке, давая (APPLE PEAR PLUM).

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

Дождитесь нескольких   |   Выполнен или нарушен