问题标签 [debounce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
665 浏览

angular - 我无法使用 debounce 更新 md-autocomplete

我已经用这个好几天了。

我有一个自定义 md-autocomplete 组件:“@angular/core”:“4.2.6”,“@angular/material”:“2.0.0-beta.8”,

我需要在最后一次按键经过“n”秒后延迟启动服务调用。Moock约会一切都很好,但是当我的服务有点延迟时。繁荣!!!!列表没有出现。

}

this.filteredOptions用于在视图中绘制列表

this.FilterList向父亲发起一个活动,并在那里调用服务。然后,使用发送到 md-autocomplete 的参数更新对象

我尝试使用this.changeDetectorRef.detectChanges()但不更新。

谢谢

0 投票
1 回答
818 浏览

angular - Angular debounce 仅用于用户输入

我在 Angular2 中有一个反应式表单设置。在一个组件中,我订阅了具有 500 毫秒去抖动时间的表单控件的值更改,例如:

如果值是由代码而不是用户更改的,有没有办法跳过去抖动时间?或者有没有办法分割这两个事件?

0 投票
1 回答
1966 浏览

jquery - 使用滚动方向去抖动滚动

我正在寻找一种方法来获取去抖动滚动事件的滚动方向。到目前为止,我可以消除滚动,但它不会触发我的条件上/下脚本。

0 投票
0 回答
370 浏览

javascript - 可重复使用的油门功能

如何使节流函数可重用?

创建了一个节流函数,希望在应用程序的不同位置重用。油门功能应该imported进入不同的文件位置!

Bellow,您可以找到一个工作版本,其中成功使用了节流功能(用户可以单击 cta 并稍后触发回调)。

标记,

脚本示例,

同时,如果我们声明一个受限制的函数并尝试在多个地方导入它,它将仅适用于单个案例,但不能同时工作。

为了,

我想常见的答案是创建一个新实例,将其导入到,如下例所示,它可以正常工作:

但是,还有哪些其他选择?

0 投票
1 回答
227 浏览

javascript - 无法更新redux中特定数组项内的输入值

我在一个 react-native projetc 工作,我不太了解 Redux。我需要帮助。:D 我们得到了一个对象数组,例如:

每一行都是一张卡片信息。这些卡片有输入(cant, ref)来改变它的值。整个对象是:

当用户在某些输入中插入一些值时,它调用 onChangeText()。

同时在 Reducer 中(我们使用react-addons-update):

一切都很好,只是它只更新了一个字符。例如: Cant: 1.那么输入焦点丢失。如果您键入: Cant: 22。只有它更新2。打字快没关系。仅更新您输入的第一个字符。我们怀疑 Redux 的行为是问题所在,但我们不知道为什么。

我们尝试使用 debounce(lodash) 但我们没有成功

请问有什么想法吗?

太感谢了!我希望它理解我的解释。

摇滚比特

0 投票
4 回答
4699 浏览

javascript - Vuejs 2:debounce 不适用于监视选项

当我在 VueJs 中对这个函数进行去抖动时,如果我提供毫秒数作为原语,它就可以正常工作。但是,如果我提供它作为对道具的引用,它会忽略它。

这是道具的缩写版本:

这是不起作用的监视选项:

这是一个可以工作的手表选项:

它怀疑这是一个范围问题,但我不知道如何解决它。如果我按如下方式替换 watch 方法......:

...我得到正确的去抖值(500)出现在控制台中。

0 投票
1 回答
5528 浏览

android - RxJava 运算符 Debounce 不起作用

我想在 Android 应用程序中实现位置自动完成,为此我使用 Retrofit 和 RxJava。我想在用户输入内容后每 2 秒做出一次响应。我正在尝试为此使用 debounce 运算符,但它不起作用。它立即给我结果,没有任何停顿。

0 投票
1 回答
461 浏览

javascript - 为什么 debounce 不调用我的函数?

我正在使用Reactmobx做一些事情。

我创建了一个ImageCarousel 组件,在其中显示被点击的图像。我有一个上一个和一个下一个按钮(它们本身就是一个组件),用于在图像之间移动。

我试图用 包装这些动作(prevnextlodash debounce,但是途中有些事情失败了。

我目前的商店有这些行动:

  • prevCarousel
  • nextCarousel
  • debounceAction

debounceAction只是一个高阶函数,它获取 2 个参数(fn,wait),并lodash debounce使用这些参数调用。

我的 CarouselButton 组件通过它的道具获得我上面提到的那些动作。在组件内部,我使用事件触发以使用实际操作(prevnextonClick )调用。debounceAction(fn, wait)

我不确定如何以正确的方式使用 debounce 来包装我的操作。

我在第二个代码片段(在CarouselButton Component中)调用debounceAction(包装去抖动的HOF)。

你看到我的错误了吗?

galleryStore.jsx - 当前商店:

carouselButton 组件-在这里我调用 debounce

imageCarousel.jsx - carouselButton组件:

0 投票
2 回答
4600 浏览

angular - Angular:如何去抖动 Observable?

在我的应用程序中,我有一个服务,它返回一个像这样的 observable:

现在在另一个地方,我想这样调用我的函数

但是我没有成功实现 debounceObservable() 函数。

我基于 Promise 等效项(https://github.com/moszeed/es6-promise-debounce/blob/master/src/es6-promise-debounce.js)尝试了这个实现:

但这并没有按预期工作。使用 Promises 时,返回 resolve(anotherPromise) 允许您调用:

当使用 Observables 时,返回 observable.next(anotherObservable) 会返回一个嵌入的 observable,这意味着你应该调用:

你将如何实现 debounceObservable() 函数?(以类似 Promise 的方式)

澄清 1:我找到了 Observable.debounce() 函数,但这会使观察者而不是可观察者本身去抖动。我想消除可观察的

澄清 2:我将 debounce 放在服务端,因为它是一个单例,并且它们是多个调用者。如果我把它放在调用方,每个调用方会有一个不同的去抖动计时器。

编辑:这是一个片段,我试图解释我的问题。只需单击不同的按钮即可查看不同的行为(更多解释见 js 代码注释)。

Observable.debounce展示了来自 RxJs 的 .debounce() 是如何工作的。它只输出“3”,但我想要“1”、“2”、“3”。

Observable.debounce x3显示了如果我调用代码 3 次而不将整个函数包装在去抖动中会发生什么。

Observable Wrapped x3显示了我想要获得的内容。我的整个函数都被包装了,但是如果你看代码,订阅部分很挑剔。

Promise x3展示了使用 Promises 是多么简单。

0 投票
3 回答
15586 浏览

javascript - 在反应中使用去抖动搜索输入

我有一个搜索输入,可以即时进行 API 调用。我想实现去抖动以减少服务器调用的数量。

我期待debouncedSearch每1秒。但它仍然是即时调用的。并抛出错误:

未捕获的类型错误:在去抖动时需要一个函数 (lodash.js?3387:10334)

未捕获的错误:引发了跨域错误。React 无法访问开发中的实际错误对象。

我觉得这个问题必须被问到很多,但似乎没有一个解决方案对我有用。有人可以向我解释这里到底是什么问题吗?我认为去抖动只是一个 setTimeOut。

谢谢