Javascript AngularJS去Bounce未按预期工作

Javascript AngularJS去Bounce未按预期工作,javascript,angularjs,observable,Javascript,Angularjs,Observable,我需要回到很久以前做的AngularJS项目(如果你已经深入Angular2,那将是多么痛苦的一件事)。我需要通过在模型更改上使用debounce来替换搜索栏输入,因为我们的流量比当时多得多。在每次击键时发送一个请求是可以的,但这对于我们现在的访问者数量来说是不可接受的 在Angular2中,rxjs的去Bounce可以解决我的问题,但在AngularJS中,它并没有按预期工作。虽然这个bug对我的工作流程并不重要,但我只是好奇这是否真的是我想要的行为 在rxjs中,去Bounces的作用是:

我需要回到很久以前做的AngularJS项目(如果你已经深入Angular2,那将是多么痛苦的一件事)。我需要通过在模型更改上使用debounce来替换搜索栏输入,因为我们的流量比当时多得多。在每次击键时发送一个请求是可以的,但这对于我们现在的访问者数量来说是不可接受的

在Angular2中,rxjs的去Bounce可以解决我的问题,但在AngularJS中,它并没有按预期工作。虽然这个bug对我的工作流程并不重要,但我只是好奇这是否真的是我想要的行为

在rxjs中,去Bounces的作用是:

User interactions(keystrokes, each dash represents 100ms)
1--2---3----4-5-6-7----8-----9-----
1----2----3----5----7----8----9----
^ .debounceTime(500)
如您所见,操作4和6将被忽略,因为它们将被随后触发的操作所取代(在500毫秒的时间跨度内)

但是在AngularJS中,使用
ng model options=“{debounce:500}”
,我得到:

User interactions(keystrokes, each dash represents 100ms)
1--2---3----4-5-6-7----8-----9-----
1----------------------8-----9-----
^ AngularJS

在本例中,AngularJS仅在存在500毫秒的虚无时才拾取更改。动作1-8之间的持续时间小于500ms,因此该持续时间内的更改永远不会更新。这是预期的行为吗?

每次用户更改输入时,将重置去盎司定时器

updateOn和debounce属性允许您指定将触发模型更新和/或去抖动延迟的自定义事件列表,以便实际更新仅在计时器过期时发生此计时器将在另一次更改发生后重置


谢谢你的信息!我只是好奇AngularJS'或rxjs'去盎司方法是否更合适。你怎么认为?你认为它应该像我在问题中提供的图1或图2中那样表现吗?我认为在打电话之前等待用户写完他/她想要的东西通常更有意义,因此我认为角度法是合适的。在做了更多的研究后,我发现了一些支持你观点的东西:去抖动的定义:“返回一个函数,该函数只要继续被调用,就不会被触发。函数停止调用N毫秒后将被调用。“.谢谢您提供的信息!