Javascript 理解RxJS去Bounce语义
发件人: 在第一次按键后,Javascript 理解RxJS去Bounce语义,javascript,angularjs,rxjs,Javascript,Angularjs,Rxjs,发件人: 在第一次按键后,debouncedInput是否会等待呼叫观察者5毫秒 还假设用户在5毫秒间隔到期之前继续键入。在发布事件/源值之前,debouncedInputObservable是否会等待不间断的5毫秒时间 举个例子(根据@OJKwon答案中非常有用的大理石图),假设-代表一毫秒。我们有以下几点: -a--b--c-------d 在这种情况下,监控间隔的计时器将在以下时间重新启动: 输入a时为2毫秒 键入b时为5毫秒 键入c时为8毫秒 9、10、11、12、13毫秒传球 a
debouncedInput
是否会等待呼叫观察者5毫秒
还假设用户在5毫秒间隔到期之前继续键入。在发布事件/源值之前,debouncedInput
Observable是否会等待不间断的5毫秒时间
举个例子(根据@OJKwon答案中非常有用的大理石图),假设-
代表一毫秒。我们有以下几点:
-a--b--c-------d
在这种情况下,监控间隔的计时器将在以下时间重新启动:
- 输入a时为2毫秒
- 键入b时为5毫秒
- 键入c时为8毫秒
- 9、10、11、12、13毫秒传球
在13毫秒时发出,因为在此期间没有其他事件abc
- 当在14毫秒时键入
时,计时器再次启动d
- 因为没有键入其他值,所以在19毫秒时发出
abcd
- 删除以前的值
- 重置间隔计时器
- 等待查看间隔是否会在不发出更多源值的情况下通过
- 最后,如果在间隔期间没有发出值,它将发出最后一个值
source.debountTime(20)
时,
const source='-a------b-----';
预期常数='--a----b---';
所有源值都只是简单地延迟
const source='-a--bc--d--|';
预期常数='--a--c--d-|';
发射的a
延迟20ms,b
由于c
在下一次发射的20ms时间间隔之前发射而下降,然后d
在c
完成后延迟20ms
总结一下,
debounceTime
操作符作为一个速率限制器,只允许在给定的时间范围内发出一个值。这两个问题都是肯定的。真棒,大理石测试图真的很有帮助!我用这个格式更新了这个问题。
-a--b--c-------d