这是一个实时 Supply
对象的工厂,它提供了向供应中发出新值的机制
my = Supplier.new;my = .Supply;.tap(-> );my = .Supply;.tap(-> );.emit(42);
将输出
One 42 Two 42
按需供应是由 Supply
类的工厂方法或 supply
关键字创建的。可以使用 Supplier::Preserving
创建实时和按需 Supply
的混合。
方法§
方法 new§
method new()
Supplier
构造函数。
方法 Supply§
method Supply(Supplier: --> Supply)
这将创建一个新的 Supply
对象,任何在此供应商上发出的值都将传递给该对象。这是所有实时
供应的工厂。
方法 emit§
method emit(Supplier: Mu \value)
将给定值发送到此 Supplier
上的 Supply
创建的所有供应的所有监听器。
方法 done§
method done(Supplier:)
调用所有具有回调的监听器的 done
回调。
my = Supplier.new;my = .Supply;.tap(-> , done => );.emit(42);.done;
将输出
42 no more answers
方法 quit§
multi method quit(Supplier: Exception )multi method quit(Supplier: Str() )
调用所有具有回调的监听器的 quit
回调,将异常传递给它们。如果使用 Str
调用,则异常将是带有提供的消息的 X::AdHoc
。
这用于使用错误关闭供应。