问题标签 [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.
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()
但不更新。
谢谢
angular - Angular debounce 仅用于用户输入
我在 Angular2 中有一个反应式表单设置。在一个组件中,我订阅了具有 500 毫秒去抖动时间的表单控件的值更改,例如:
如果值是由代码而不是用户更改的,有没有办法跳过去抖动时间?或者有没有办法分割这两个事件?
jquery - 使用滚动方向去抖动滚动
我正在寻找一种方法来获取去抖动滚动事件的滚动方向。到目前为止,我可以消除滚动,但它不会触发我的条件上/下脚本。
javascript - 可重复使用的油门功能
如何使节流函数可重用?
创建了一个节流函数,希望在应用程序的不同位置重用。油门功能应该imported
进入不同的文件位置!
Bellow,您可以找到一个工作版本,其中成功使用了节流功能(用户可以单击 cta 并稍后触发回调)。
标记,
脚本示例,
同时,如果我们声明一个受限制的函数并尝试在多个地方导入它,它将仅适用于单个案例,但不能同时工作。
为了,
我想常见的答案是创建一个新实例,将其导入到,如下例所示,它可以正常工作:
但是,还有哪些其他选择?
javascript - 无法更新redux中特定数组项内的输入值
我在一个 react-native projetc 工作,我不太了解 Redux。我需要帮助。:D 我们得到了一个对象数组,例如:
每一行都是一张卡片信息。这些卡片有输入(cant, ref)来改变它的值。整个对象是:
当用户在某些输入中插入一些值时,它调用 onChangeText()。
同时在 Reducer 中(我们使用react-addons-update):
一切都很好,只是它只更新了一个字符。例如: Cant: 1.那么输入焦点丢失。如果您键入: Cant: 22。只有它更新2。打字快没关系。仅更新您输入的第一个字符。我们怀疑 Redux 的行为是问题所在,但我们不知道为什么。
我们尝试使用 debounce(lodash) 但我们没有成功
请问有什么想法吗?
太感谢了!我希望它理解我的解释。
摇滚比特
javascript - Vuejs 2:debounce 不适用于监视选项
当我在 VueJs 中对这个函数进行去抖动时,如果我提供毫秒数作为原语,它就可以正常工作。但是,如果我提供它作为对道具的引用,它会忽略它。
这是道具的缩写版本:
这是不起作用的监视选项:
这是一个可以工作的手表选项:
它怀疑这是一个范围问题,但我不知道如何解决它。如果我按如下方式替换 watch 方法......:
...我得到正确的去抖值(500)出现在控制台中。
android - RxJava 运算符 Debounce 不起作用
我想在 Android 应用程序中实现位置自动完成,为此我使用 Retrofit 和 RxJava。我想在用户输入内容后每 2 秒做出一次响应。我正在尝试为此使用 debounce 运算符,但它不起作用。它立即给我结果,没有任何停顿。
javascript - 为什么 debounce 不调用我的函数?
我正在使用React和mobx做一些事情。
我创建了一个ImageCarousel 组件,在其中显示被点击的图像。我有一个上一个和一个下一个按钮(它们本身就是一个组件),用于在图像之间移动。
我试图用 包装这些动作(prev和next)lodash debounce
,但是途中有些事情失败了。
我目前的商店有这些行动:
prevCarousel
nextCarousel
debounceAction
debounceAction
只是一个高阶函数,它获取 2 个参数(fn,wait),并lodash debounce
使用这些参数调用。
我的 CarouselButton 组件通过它的道具获得我上面提到的那些动作。在组件内部,我使用事件触发以使用实际操作(prev或nextonClick
)调用。debounceAction(fn, wait)
我不确定如何以正确的方式使用 debounce 来包装我的操作。
我在第二个代码片段(在CarouselButton Component中)调用debounceAction
(包装去抖动的HOF)。
你看到我的错误了吗?
galleryStore.jsx - 当前商店:
carouselButton 组件-在这里我调用 debounce:
imageCarousel.jsx - carouselButton父组件:
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 是多么简单。
javascript - 在反应中使用去抖动搜索输入
我有一个搜索输入,可以即时进行 API 调用。我想实现去抖动以减少服务器调用的数量。
我期待debouncedSearch
每1秒。但它仍然是即时调用的。并抛出错误:
未捕获的类型错误:在去抖动时需要一个函数 (lodash.js?3387:10334)
未捕获的错误:引发了跨域错误。React 无法访问开发中的实际错误对象。
我觉得这个问题必须被问到很多,但似乎没有一个解决方案对我有用。有人可以向我解释这里到底是什么问题吗?我认为去抖动只是一个 setTimeOut。
谢谢