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

node.js - 如何从节点命令行运行去抖动功能?

我知道去抖动是做什么的。我想在节点中触发它(通过运行带有 的脚本#!/usr/bin/env node),但我遇到了麻烦。

下面的代码应该

  • MakedoThingAfterDelay()在它被调用一次并且在 100 毫秒内没有被再次调用后运行一个简单的函数。
  • doThingAfterDelay()
  • 休眠(异步)15 秒,给doThingAfterDelay()时间去抖动并因此执行。

但是它不起作用:

它返回:

我期望:

如何使去抖动功能运行?

编辑:我可以通过以下方式获得所需的输出:

但我不明白为什么 -doThingAfterDelay()返回一个真正的价值很重要。

0 投票
1 回答
13950 浏览

javascript - 如何使用 async/await 去抖动?

我有一个输入框。用户停止输入后,我想执行一个 HTTP 请求并等待结果。

这是一个jsbin

由于 jsbin 上不允许网络请求,所以我setTimeout()改用了。

但是,当我在框中键入时,“正在搜索”会立即出现每个字符 - 我希望它仅在 500 毫秒到期后出现。

如何使用去抖动和等待?

0 投票
2 回答
1243 浏览

reactjs - 使用 Underscore debounce[React] 获取事件对象

我正在尝试对我设法做到的操作使用 debounce,但是我想将 e 作为参数传递,但它不起作用。有什么办法可以做到这一点吗?

如果我拿走 e 它将进入函数,否则不会。我应该怎么做才能解决这个问题?

0 投票
1 回答
574 浏览

c - 轮询和去抖动 gpio (posix)

我编写了一个函数来处理来自用户空间的自定义键盘的输入。我用“direction”(输入)和“edge”(上升)属性配置了 gpios。然后我的函数使用 poll 来获取文件描述符的中断:

有没有办法在代码中添加去抖动功能?通常去抖动器使用“直接” gpio 读取,而不是中断,所以我现在不知道它是否可行。

0 投票
2 回答
2506 浏览

search - 去抖动 ember 搜索输入

我想在 ember 应用程序中为我的搜索输入添加去抖动功能。我在使用debounce 方法时遇到问题。

这是我的搜索的样子:

我的路线文件:

我的控制器文件:

0 投票
1 回答
241 浏览

c - 按位积分去抖算子混淆

我正在构建一个键盘,一些固件在用 C 语言编程的无线模块上运行。我正在尝试推出我自己的去抖动算法,并且可以使用一些帮助。本质上,这是代码的布局方式:

#define DEBOUNCE 5- 这个值可以是从 1(不建议,不是真正的去抖动)到无穷大(出于显而易见的原因也不建议)的任何值。我用这个去抖动 32 个按钮,所以接下来我使用以下方法创建一个 32 位整数数组:

static uint32_t key_integration[DEBOUNCE];

在每次扫描输入(1KHz 轮询率)时,我将数组的倒数第二个项目移动到最后一个,将倒数第三个移动到倒数第二个,等等,直到我最终输入键的原始扫描到第 0 个数组项。(附带的问题:比仅仅从 0 迭代循环到 DEBOUNCE-2 更简单的方法?如果我有一个 (32*DEBOUNCE) 位整数,我会使用按位移位,但是......无论如何。)

现在我遇到困难的棘手部分:将数组结果与当前(去抖动)键状态进行比较。本质上,如果 key_integration int 的位 X 是 1 是所有数组,我想将它与当前(去抖动)键状态进行异或,以查看它是否已更改。如果 key_integration int 的每个位 X 在所有数组中都是 0,我也想做同样的事情。如果位 X 在数组中分散为 1 和 0,则它仍在去抖动并且不需要进行比较。

我目前对如何将 key_integration 数组与去抖键状态 int 进行比较感到困惑。我非常感谢有关如何 A)比较它们或 B)重构代码以更简单的方式完成相同结果的建议。我绝对不能相信我所想的就是最好的方法。

0 投票
1 回答
1804 浏览

reactjs - 做出反应。实现 setState 方法的去抖函数

我正在开发一个简单的 hoc 组件,它将视口尺寸传递给它的孩子。在窗口调整大小时,我启动 handleResize 方法将新窗口尺寸传递给子组件。我想使用 lodash 中的 debounce func 来最小化调用 handleResize 方法的次数(ref)。

它按预期工作,但我不断收到以下警告: 在此处输入图像描述

有谁知道发生了什么?

请告诉我

0 投票
2 回答
9258 浏览

javascript - Jquery中的去抖功能?

一直在寻找去抖功能或在 Jquery 中去抖的方法。动画的构建会变得非常烦人。继承人的代码:

我把这些都包装在 $(document).ready(function() {

有办法去抖吗??

0 投票
2 回答
958 浏览

function - rxjs 缓冲区,直到在新的 arg 到达时重置超时

摘要:我正在使用 Rxjs 和一个新手。我想用可观察的方式实现这样的场景,但到目前为止还没有运气。

有一个函数 loadDetailsFromServer(itemIds),它调用服务器 api 并传递一些项目 ID。这个函数被偶尔调用。为了优化服务器调用,这就是我想要做的:随着第一个函数调用的到来,触发超时。如果在超时之前有任何新的函数调用到达,则重置超时以重新开始。当超时开始时,将进行服务器调用,并且参数计数重置为零。

这是一个大理石图:

提示:这类似于搜索框示例并从服务器获取结果,除了中间值是感兴趣的,并且不会被忽略/跳过。

0 投票
2 回答
2508 浏览

vue.js - VueJS 2 在多个组件上去抖动

我有一个使用多个子组件的 Vue 组件。在这些子组件上,我有一个观察者来观察数据变化并处理这些变化。我想为此实现去抖动。

问题是 debounce 有效,因此它仅在最后一个子组件上执行。

我找到了一个接受额外 id debounceWithId的 debounce 函数的解决方案

但是有一个问题是,如果我指定这个函数如下:

最后一个 this.id 是未定义的。

在多个组件中使用 debounce 的正确方法是什么,以便函数在每个组件上单独触发?