Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / react и whenever / Блокът react

Тест — react

Какво отпечатва следната програма?

my @got;

react {
    whenever Supply.from-list(1, 2, 3, 4, 5) {
        @got.push($_);
        done if $_ == 3;
    }
}

say @got;
1[1 2 3]
0[1 2 3 4 5]
0[3]
0[4 5]

Тялото на whenever събира всяка стойност, но извиква done, щом види 3. done затваря блока react, така че потокът се изоставя и 4 и 5 изобщо не се обработват, което оставя [1 2 3].

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

Блокът react   |   whenever