Курс по 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. Изчакването на поток блокира, докато потокът не подаде всичко, което има — същото „чакай до приключване“, което await дава за обещание, — а стойността му е последното, което потокът е подал, тоест 23.

  2. Това пасва на поток, при който има значение само крайното състояние, като най-новото показание на датчик. Ако ви трябва всяка стойност, това е работа за .tap или за блок react, както в предишните раздели.

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

Изчакайте supply   |   Изчакайте отказ