3

这是一个有趣的。我正在使用 FRP,并查看各种库(jQuery、Bacon.js)中的“去抖动”方法。我开始使用它,发现它几乎可以满足我的需求,但有细微的差别。这是我对 debounce 的理解,因为它与事件处理有关:

当一个事件至少以一定的频率发生时,不要做任何事情。一旦事件减慢到低于频率,触发事件处理程序。例如(伪代码)key-presses.debounce(1 second) then Alert,如果按键在一秒钟内被按下,我们将看不到任何事情发生,直到最后一个按键被按下后 1 秒,然后我们会得到一个警报。

我需要的是在序列开始时触发的东西,而不是在结束之后。因此,对于同一个示例,我们会立即看到警报,然后什么也没有。如果用户在至少 1 秒后再次开始按键,我们会收到另一个警报,然后什么都没有。

代码很简单——我只想要一个名字。频率仍然需要一个参数:BeginSequence(1000)?到期后(1000)?

有什么建议么?

4

1 回答 1

0

所以你想要一个在足够长的没有事件之后有一个事件的事件?
我会称该事件为打破沉默的事件,所以可能类似于breakSilence?我不确定这看起来是否正确,onBreakSilence但我不熟悉培根的命名法,所以我不知道是否onX使用过。
另一种选择可能是listenAfter.

key-presses.onBreakSilence(1 second) then Alert

key-presses.listenAfter(1 second) then Alert

于 2014-05-31T17:21:10.607 回答