问题标签 [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.
javascript - Lodash debounce 在 React 中不起作用
最好先看看我的代码:
只是一个简单的输入。在构造函数中,它value
从 props(如果可用)中获取组件的本地状态。
然后在我更新状态的onChange
函数中input
,然后尝试调用 web 服务端点来设置新值Services.setValue()
。
如果我像这样debounce
直接通过输入设置onChange
但随后this.setState
仅每 1000 毫秒调用一次并更新视图。因此,在文本字段中输入最终看起来很奇怪,因为您输入的内容只在一秒钟后显示。
在这种情况下我该怎么办?
angular - Angular & Observable debounceTime
在 Angular 4 项目中,我有一个函数(我们称之为它reload()
),它可以随时被其他函数(我们称之为A()
and B()
)调用。我想消除从orreload()
的最后一次调用传递的直到 X 时间(即毫秒)的执行。我正在查看and函数,但我不明白它们是否真的可以帮助我。A()
B()
Rx.Observable.debounce
Rx.Observable.debounceTime
一个例子:
react-redux - 取消之前的请求实时搜索reactjs
我需要使用实时搜索 axios 请求取消上一个请求 - 我正在使用油门去抖动来发出请求,但是在删除现有单词并更新新值时我遇到了问题 - 在某些情况下会显示前一个单词的结果,我想我需要取消所有以前对相同 requestID 的请求,通读文章,但它们都不适用于我的用例。任何帮助都是我的代码。
减速器:
服务:
javascript - 在观察者(AngularJS)中反跳函数执行
我有一个vm.search
变量,它是输入元素的 ng 模型。当我输入一些东西时,我想用一个delayedSave
函数将它保存到数据库中,但我不想保存用户输入的所有内容。所以我决定使用 lodash_.debounce
函数,但问题是这个函数在$scope.$watch
. delayedSave
执行次数与$scope.$watch
函数一样多。
我可以将 debounce 设置为$watch
的回调,但我需要执行我在下面编写的代码,每次vm.seach
都发生了变化。
r - 输入更改时去抖定时器不重新启动
我正在尝试创建一个日期输入,该输入会自动将输入的值更新为所选月份的月底。我遇到的问题是,当我运行第一段代码(如下)时,如果用户尝试通过输入日期来手动更改日期,他们将无法更改,因为输入会立即更新到月底在用户完成输入之前。
因此,我尝试实现去抖动(如下所示 - 仅更改服务器代码),以便延迟输入更新,直到用户完成输入;但是,我遇到了一个问题。正如我所理解的那样,计时器不会在每次击键时重置。相反,计时器就像我使用油门功能一样运行,并在输入第一次更改时启动,并且在输入更改时不会重置。
javascript - 如何显式覆盖 AngularJS 模型去抖动?
在我们的 AngularJS 1.* 应用程序的一个页面上,我正在查看一个文本输入1,它的debounce
值设置为大于零。大致是这样配置的:
通过该文本输入输入的数据在单击按钮或按下键时进行处理Enter。
现在,问题是当用户Enter在更改值后立即点击时,由于去抖动设置,新值尚未在模型中。
我能找到的解决方案的唯一提示是关于使用ngSubmit
而不是ngClick
,但我们既没有使用表单元素,也没有使用ngClick
(后者至少在重要的地方不重要)。通过事件Enter在自定义指令中捕获按键。keydown
我可以以某种方式强制 AngularJS 跳过去抖动期并立即在该keydown
事件的处理程序中根据我的命令更新模型吗?
请注意,一个明显的解决方法是$timeout
在处理程序中使用略高于去抖动延迟,keydown
以确保模型已更新。不过,这对我来说真的很奇怪,而且也与用户希望在Enter按键时立即做出反应的期望相冲突。
1:实际上,它是一个动态生成的 UI,可以在嵌套容器中包含任意数量的此类文本输入。
timer - 为什么 LED 不熄灭?
我有一个程序(复制如下),它有一个在 10 秒内启动的警报,它启动一个每两秒闪烁一次的 LED。我想按下一个关闭警报/LED 的按钮。LED 按预期闪烁,但在我按下按钮时不会关闭。知道为什么吗?下面的代码:
vuejs2 - 使用 vue-multiselect 和 debounce 时无法从 vue.js 组件内部调用另一种方法
我正在尝试使用 vue-multiselect 实现自动完成,它具有异步服务器调用,但我使用 debounce 函数来延迟服务器中的调用,但我遇到了问题。问题是我无法从我使用 debounce 的方法中调用另一个方法。我的代码如下:
它没有记录 q ,而是将错误显示为:
我从以下代码行调用了 asyncFind
angular - 使用对服务的去抖动更新值调用测试表单字段
我在组件中有一个表单字段(用户名),当更新时调用服务来检查数据库中值的可用性。一切正常,但我似乎无法触发该字段的更新功能。
以下是组件代码的摘录:
这是组件模板中的字段:
这是我的测试:
最后expect(service.chkUser).toHaveBeenCalled()
是导致我的测试失败的原因。我已经在应用程序中运行了这个组件,它按预期工作我只是想让测试通过。我已经尝试了很多设置输入值和调度事件的组合,等待夹具检测更改或使用 whenStable(),抛出一个承诺,使用 fakeAsync 而不是使用 fakeAsync。似乎没有任何效果。