这是一个有趣的。我正在使用FRP,并查看各种库中的'debounce'方法(jQuery,Bacon.js)。我开始使用它,并发现几乎做我需要的,但有一个微妙的区别。这是我对debounce的理解,因为它与事件处理有关:
当事件发生至少一定频率时,请勿做任何事情。一旦事件减慢到低于频率,就触发事件处理程序。例如({1}}的伪代码,如果按键在彼此的一秒内被按下,我们将看不到任何事情,直到最后一个按键被按下1秒后,我们才会收到警报。
我需要的是在序列开始时而不是在结束之后触发的东西。因此,对于同一个例子,我们会立即看到警报,然后什么都没有。如果用户在至少1秒后再次开始按键,我们会再次收到警报,然后再发送任何警报。
代码很简单 - 我只想要一个名字。频率仍需要一个参数:BeginSequence(1000)? AfterExpiry(1000)?
有什么建议吗?
答案 0 :(得分:0)
所以,如果在没有事件足够长的时间后发生事件,你想要一个事件吗?
我会把这个事件称为一个破坏性的事件,所以也许像breakSilence
这样的事情?我不确定看起来是否合适,也许onBreakSilence
,但我不熟悉培根的命名,所以我不知道是否使用了onX
。
另一种选择可能是listenAfter
。
key-presses.onBreakSilence(1 second) then Alert
key-presses.listenAfter(1 second) then Alert