Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Конкурентне програмування / Промиси
start і await
Ключове слово start виконує блок у фоні й негайно
повертає Promise:
my $p = start { 2 + 2 };Робота відбувається в пулі потоків Raku, поки ваша програма йде далі.
Щоб отримати результат, скористайтеся await, який чекає
завершення обіцянки й дає вам її значення:
my $p = start { 2 + 2 };
say await $p; # 4await блокує виконання рівно настільки, щоб обіцянка
встигла завершитися, а потім повертає те, що дав блок, — тут
4. Якщо на момент очікування роботу вже виконано, ви
отримуєте результат одразу.
Ця пара — start для запуску, await для
збирання — є ядром конкурентності на обіцянках. Ви можете запустити
кілька шматків роботи, дати їм виконуватися водночас і дочекатися їхніх
результатів, коли будете готові, — саме на цьому й будує наступна
тема.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Промиси | Тест — Промиси →
💪 Або перейдіть одразу до вправ цього розділу.