在 Supplier 中§
请参见主要文档 在上下文中 了解方法 done
method done(Supplier:)
对所有具有一个回调的 tap 调用 done
回调。
my = Supplier.new;my = .Supply;.tap(-> , done => );.emit(42);.done;
将输出
42 no more answers
在独立例程中§
请参见主要文档 在上下文中 了解子例程 done
sub done(--> Nil)
如果在任何供应或反应块之外使用,则会抛出异常 done without supply or react
。在 Supply
块内,它将指示供应不再发出任何内容。另请参见 方法 done
的文档。
my = supply.tap( -> , done => );# OUTPUT: «Second : 1Second : 2Second : 3No More»
传递给 done
命名参数的块将在 supply
块内调用 done
时运行。
从 Rakudo 编译器的 2021.06 版本开始,还可以使用 done
提供一个值
sub done( --> Nil)
指定的 value 将首先被 emit
,然后调用无参数的 done
。
my = supply.tap: -> , done =># OUTPUT: OUTPUT: «Val: 1Val: 2Val: 3Val: 42No More»