Javascript RxJS:Rx.Observable.interval上的去BounceTime未按预期工作

Javascript RxJS:Rx.Observable.interval上的去BounceTime未按预期工作,javascript,rxjs,observable,debouncing,Javascript,Rxjs,Observable,Debouncing,在下面的代码行中,我希望每2秒打印一次。但是什么也没有印出来: Rx.Observable.interval1000.debounceTime2000.subscribex=>console.log'here' 但是,在以下代码行中,如预期的那样,这里每2秒打印一次: Rx.Observable.interval2000.debounceTime1000.subscribex=>console.log'here' 在第一种情况下,我期望1秒周期的事件流被取消到2秒周期。这似乎不起作用 在第二种情

在下面的代码行中,我希望每2秒打印一次。但是什么也没有印出来:

Rx.Observable.interval1000.debounceTime2000.subscribex=>console.log'here'

但是,在以下代码行中,如预期的那样,这里每2秒打印一次:

Rx.Observable.interval2000.debounceTime1000.subscribex=>console.log'here'

在第一种情况下,我期望1秒周期的事件流被取消到2秒周期。这似乎不起作用

在第二种情况下,我期望一个2秒周期的事件流会从1秒周期中消失。这似乎奏效了


为什么第一个案例的效果不如预期?我的期望有什么问题吗?

第一种情况的问题是,您每秒都在创建一个新的间隔,但告诉可观察对象等待2秒,以便将对象传递给订阅。由于间隔值小于debounceTime值,您的订阅将永远无法解决。

第一种情况的问题是,您每秒钟创建一个新间隔,但告诉可观察对象等待2秒,以便将对象传递给订阅。由于间隔值小于“去BounceTime”值,您的订阅将永远无法解析。

您可能会将“去Bounce”与“throttle”混淆

去BounceTime 对于每个项目,等待X毫秒,直到没有其他项目发出,然后才发出该项目

Rx.Observable.interval(1000).debounceTime(2000).subscribe(x => console.log('here'))
所有项目都会被删除,因为项目总是在2000毫秒内发出

节流时间 如果在最后X毫秒内没有发射其他项目,则发射项目。否则,项目将被丢弃

Rx.Observable.interval(1000).throttleTime(2000).subscribe(x => console.log('here'))
每2000毫秒打印一个项目。

您可能会将去抖动与油门混淆

去BounceTime 对于每个项目,等待X毫秒,直到没有其他项目发出,然后才发出该项目

Rx.Observable.interval(1000).debounceTime(2000).subscribe(x => console.log('here'))
所有项目都会被删除,因为项目总是在2000毫秒内发出

节流时间 如果在最后X毫秒内没有发射其他项目,则发射项目。否则,项目将被丢弃

Rx.Observable.interval(1000).throttleTime(2000).subscribe(x => console.log('here'))

每2000毫秒打印一个项目。

谢谢!是的,我确实误解了debounceTime。谢谢!是的,我确实误解了debounceTime。