提问人:Fernando Santagata 提问时间:3/10/2019 最后编辑:TholleFernando Santagata 更新时间:3/11/2019 访问量:162
对序列中的供应做出反应
react on a supply from a sequence
问:
我不明白为什么这个程序有效:
my $supply = Supply.interval: 1;
react {
whenever $supply { put "Got $^a" }
whenever Promise.in(5) { put 'Timeout!'; done }
}
END put 'Ending…'
打印此:
Got 0
Got 1
Got 2
Got 3
Got 4
Timeout!
Ending…
并正确退出,而这个:
my $supply = (1, 1, * + * … ∞).Supply;
react {
whenever $supply { put "Got $^a"; sleep 1 }
whenever Promise.in(5) { put 'Timeout!'; done }
}
END put 'Ending…'
指纹
Got 1
Got 1
Got 2
Got 3
Got 5
Timeout!
但随后它挂起并且不输出“结局...”;在这种情况下,“完成”还不够吗?
如果我将“done”替换为“exit”,程序可以正常工作并退出。
答: 暂无答案
评论
done
my $supply = (^10).Supply