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