0

实际上我需要实现类似debounce运算符的东西,但我们举个例子。如果我将 debounce 设置为 5 秒,那么用户可以在 5 秒内单击按钮 10 次,并且在 5 秒到期后将考虑最后一次单击事件。

我需要的是当 5 秒设置为时间范围时的选项,当用户点击 10 次时,将立即考虑第一次点击,并且在 5 秒时间范围内发出的所有其他点击都将被取消。

5 秒后,用户可以再次开始点击。

怎么做?

4

1 回答 1

2

RxJS 中有另一个运算符来完成您的任务,throttleTime.

它将订阅发出的第一个值,然后等待 5 秒,然后在 5 秒后再次发出值。

const source = fromEvent(document, 'click').pipe(
  throttleTime(5000),
);

请在此处找到工作示例:https ://stackblitz.com/edit/rxjs-hwviuc

你可以在这里学习更多关于throttleTime

于 2020-04-19T11:09:10.833 回答