问题标签 [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 回答
297 浏览

node.js - 通过 debounce 将绑定参数传递给包装函数

我有一个已经将参数绑定到侦听器回调的函数。它工作得很好,但现在我需要去抖动(lodash)

我似乎无法正确绑定去抖动,以便将参数pin_num传递给侦听器回调的 .bind 。

这是我尝试过的

但是收到错误,我的绑定去抖动不是一个函数,而是根据日志语句它是。

https://github.com/lodash/lodash/blob/master/debounce.js

尝试了一些变化,但没有爱。所以一定没有什么完全正确的。请帮忙

或者,有没有更好的方法让我的“pin_num”绑定到传递给去抖动的函数?

0 投票
0 回答
285 浏览

polymer - 如何在聚合物中加载(然后由观察者)运行函数

我试图getResponse在此 Web 组件加载时运行一次,然后在每次过程属性更改时运行。

然而,当试图运行这个debounce函数时,它被调用了 4 次,并getResponse在延迟后运行,但是 4 次而不是 1 次。

我怎样才能实现这种行为?

PS还在ready函数中尝试了这种去抖方法,它仍然调用getResponse 4次......(https://codepen.io/tony19/pen/vxZVwx

0 投票
1 回答
573 浏览

polymer - 如何使用观察者聚合物去抖动

我试图getResponse在 Web 组件完成加载时运行一次。但是,当我尝试运行它时,该debounce函数仅充当异步延迟,并在 5000 毫秒后运行 4 次。

getResponse加载元素后运行一次需要什么?

0 投票
0 回答
94 浏览

arduino - Serial.println() 中 1 个字符的差异打破了我的按钮去抖动(Arduino)

是的,标题没有意义,我的问题也没有意义。

(在 Win 10 上使用 Arduino Uno、Eclipse 作为 IDE 和 Sloeber 插件)

我只是想读取一个简单的按钮按下并使用软件去抖动来清理它的信号。我在这里按照教程:https ://www.arduino.cc/en/Tutorial/Debounce

我最终将拥有三个按钮来读取和去抖动,但我只是想让“保存”按钮立即工作。一旦我让它实际打印“保存”,我应该计划添加代码以写入 EEPROM。不过那是后来的。

我的程序进入:

仅当我在上一节中将一定数量的字符打印到串行监视器时才声明:

最初打印的所有数字都是文字,但为了隔离 WTF 正在进行,我删除了文本,直到它坏掉。我认为这取决于字符数,因为我已经合并了几个 Serial.println() 行并保持字符数相同并且它仍然有效。

这是否存在根本性的问题,使其依赖于打印到串行监视器的内容?自从我弄乱 Arduino 以来已经很久了,所以我可能会遗漏一些简单的东西。

我确实尝试过使用 delay() 而不是 serial.println() ,但这似乎不起作用,而且我真的不想要实际的延迟。

我确实看到了这个问题:Arduino Serial.println 奇怪的错误

但是我检查了一下,我认为我没有遇到同样的问题,尽管症状看起来确实是一样的。

谁能看到我错过了什么?我确实考虑过放弃它并使用 Bounce2 库,但我想如果我自己能做到,我实际上会知道发生了什么。

完整代码如下:

0 投票
2 回答
16464 浏览

vue.js - Lodash ReferenceError: _ 未在 Vue 中定义,即使它在其他任何地方都可以使用

在我的组件 shoppingCart.vue 文件中,我调用了一个简单的方法:

但我得到错误:未捕获的引用错误:_ 未定义。

现在得到有趣的部分。例如,如果我将功能更改为:

一切正常,我得到例如: 4. 为了让它更有趣,我有一些其他组件正在使用 _.debounce 例如搜索用户:

它工作完美。

所以这里有一些背景信息给你。我想我猜到问题出在哪里,但我不确定:我正在使用 Laravel,我正在通过 bootstrap.js 导入 Lodash

Buying.vue 正在调用我的组件 shoppingCart.vue。Buying.vue 被调用

也许问题出在vue路由器的某个地方?但我试图制作一个 jsfiddle http://jsfiddle.net/gnu5gq3k/,但我的例子在这种情况下有效......在我的现实生活项目中 test2 产生了问题......

可能是什么问题呢?您需要什么样的信息才能更好地理解我的问题?

编辑 我一定犯了一些我看不到的简单错误:我将代码更改为:

而且我不能调用我自己的函数!

我究竟做错了什么?

0 投票
5 回答
14994 浏览

angular - Angular Reactive Forms:仅对某些特定的表单控件进行去抖动

我有一个简单的搜索组件,其中包含一个带有 2 个元素的反应式表单:

  • 文本输入(搜索任意匹配的文本)
  • 复选框(包括/排除已删除的结果)

到目前为止,我myFormGroup.valueChanges.subscribe(...)用来执行我的搜索方法。

现在的问题是,我想消除文本输入的抖动。同时不去抖动复选框,因此单击复选框时搜索方法会立即执行。

使用valueChanges.debounceTime(500)当然会消除整个表单的抖动。那不是我想要的。

这是一个精简的例子。真实的形式有更多的输入。有些应该去抖动,有些不应该。

有什么简单的方法可以完成这项工作吗?还是我必须分别订阅每个表单控件?

很高兴看到你是如何解决这个问题的。

提前致谢。


编辑:代码

0 投票
1 回答
1241 浏览

javascript - VueJS 如何在数据更改上使用 _.debounce

我正在构建一个小vue.js应用程序,我在其中执行一些发布请求。我使用watch-method 来进行 api 更改,如果发布请求成功,则更新组件。由于观察者不断检查 API,我想添加该._debounce方法,但由于某种原因它不起作用。

这是代码:

这给了我错误Cannot read property 'get' of undefined

有人可以告诉我我做错了什么吗?

编辑

我删除了watch-method 并尝试添加

结果请求在循环中运行:-/当我删除updated-lifecycle时,组件(当然)不会对api / array更改做出反应......我很无能为力

0 投票
1 回答
170 浏览

redux - dispatch: debounce 需要一个函数

我正在尝试消除调度。这是我写的代码:

但它不起作用。控制台说debounce期望一个函数,不是dispatch一个函数吗?

0 投票
12 回答
82069 浏览

flutter - Flutter TextField 值总是大写和去抖动

我是 Flutter 的新手。我正在寻找始终为大写的 TextField 值,但我没有找到任何资源。

另一个问题是 TextField onChanged 事件去抖动实现。当我在 TextField 上键入时,它会立即触发不适合我的目标的onChanged事件。onChange 事件将在每个文本更改 500 毫秒后触发。

0 投票
3 回答
1429 浏览

javascript - 写debounce的时候,clearTimeout的意义何在?

我写了一个类似上面的去抖动函数,当一个事件被触发时,我多次调用了这个函数。我的问题是, setTimeout结束时的 clearTimeout是否有意义?

最好的方法是什么?

提前致谢 :)