class Supplier::Preserving is Supplier { }

这是一个实时 Supply 类型对象的工厂,它提供了向供应中发出新值的方法,当没有消费者进入 Supply 时,值将被保留。任何进入都将消耗已存储和未来的值。

启动保留 Supply,并在其 done 后消耗其值

my $p = Supplier::Preserving.new;
start for ^3 {
    $p.emit($_);
    LAST {
        say done after { now - BEGIN now}s;
        $p.done;
    }
}
sleep 2;
react {
    whenever $p.Supply { $_.say}
    whenever Promise.in(2{ done }
}
say also done after { now - BEGIN now }s

将输出

done after 0.0638467s
0
1
2
also done after 4.0534119s

方法§

方法 new§

method new()

Supplier 构造器。