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

Решение: Дождитесь supply

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

Код

my $sensor = Supply.from-list(18, 21, 19, 23);

my $last = await $sensor;
say "final reading: $last";

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

Вывод

final reading: 23

Комментарии

  1. Ожидание supply блокирует выполнение, пока поток не выдаст всё, что у него есть, — то самое «ждать до завершения», которое await даёт и для промиса, — а его значением становится последнее, что выдал supply, то есть 23.

  2. Это подходит для потока, в котором важно лишь конечное состояние, например для последнего показания датчика. Если же вам нужно каждое значение, это работа для .tap или блока react, как в предыдущих разделах.

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

Дождитесь supply   |   Дождитесь сбоя