问题标签 [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 - 如何在 ReactJS 中使用 debounce
我正在学习 ReactJS 并遇到以下问题。我有一个联系人搜索输入,并希望在用户停止输入后 1000 毫秒内处理它。为此,我使用 debounce 功能:
在填写搜索输入后的控制台日志中,我收到一条警告“出于性能原因,此合成事件被重用。如果您看到此内容,则表示您正在访问已target
发布/无效合成事件的属性。此设置为 null。如果您必须保留原始合成事件,请使用 event.persist()"
和错误“Uncaught TypeError: Cannot read property 'value' of null at ContactList._this2.handleChange”。
我在函数中使用persist
方法。handleChange
为什么我会收到此错误?
swift4 - iOS RXSwift 什么是 debounce 的等价物,它只允许通过第一个事件?
我有一个发送网络请求的按钮。我想忽略此按钮内的双击。我试过.throttle
了,但这似乎不起作用。所以我正在尝试.debounce
- 这确实忽略了重复的点击,但只允许通过最后一个事件。
我想要的是:在第一次点击时,发送网络请求,在 0.33 秒内忽略后续点击。
哪个 RXSwift 运算符可以帮助我在一个时间窗口内完成一个事件并禁用后续事件?
unit-testing - 用 Mocha Chai 和 Sinon 测试去抖动的 Vue 方法
如果我有一个 Vue 组件,例如:
我将如何someFunction
使用 Mocha + Chai + Sinon 进行测试?
android - RxJava debounce 运算符仅显示 Android 上的最后一次发射
我正在尝试在 Android 上使用 RxJava 在 1 秒后发出一个数字。
但是,只有最后一项 (7) 被发出。
我究竟做错了什么?
vue.js - 使用 debounce 将参数传递给方法的函数 - vue
模板:
方法:
fetchData
使用参数 0 -调用fetchData(0)
,但它不会通过,因为我正在使用_.debounce
. 控制台日志显示“未定义”
如何正确传递参数?
ios - 如何在输出下一个之前对 RxSwift 进行单元测试?
我正在使用 RxSwift 进行反应式编程,并想测试我的视图模型。我有这样的去抖:
在视图模型中:
然后在测试用例中:
但它没有发出事件。我尝试添加scheduler.advanceBy(550)
之后,scheduler.start()
但结果是一样的。
请帮忙。
谢谢你。
angular - 如何在角度 5 的去抖时间上达到组件的功能?
我如何以角度设置组件功能的去抖动时间。实际上我从 selectTableRow() 方法中找到了一个 api。当我选择 tr 然后点击 api 但是当我选择多个 tr 然后多个请求将发送到服务器。
我希望当我快速选择多个表行时,只发送一个请求,例如(自动完成搜索)。
HTML
方法
javascript - 去抖动功能的开玩笑单元测试
我正在尝试为去抖动功能编写单元测试。我很难考虑。
这是代码:
我应该如何开始?
javascript - Javascript > 解复用/缓存 Promise 函数调用
问题:
我目前正在使用socket.io
(服务器端)来处理来自客户端的异步请求。这些请求被传递到上游服务 - 这是相当昂贵/缓慢且速率有限的。我想解复用/缓存对上游服务的调用。例如10 次调用getUserProfile(123)
=> 1 次调用上游服务(在一段时间内)
我尝试使用缓存(lru-cache),但是在从上游服务器获得响应(对于第一次调用 - 所以这不起作用)之前,从客户端收到了一些调用(在毫秒内)。
debounce -promise库听起来像我需要的,但是它没有考虑不同的参数(例如
getUserProfile(123)
andgetUserProfile(456)
=> 期望profile_123
andprofile_456
,但是返回profile_456
(两次)。
如果我举个例子可能最好...
服务器.js
arduino - Arduino中断不会忽略下降沿
我在完全消除连接到中断的按钮时遇到了一些麻烦。目标是在按下/释放按钮时使语句void loop()
恰好运行一次。
通常最终发生的事情是两件事之一
- ISR 标志在按下按钮时设置一次。正如预期的那样,释放按钮没有任何作用。
- ISR 标志在按钮被按下时设置一次,在按钮被释放时再次设置。
这是我拥有的确切代码:
这似乎是一种消除中断的流行方式,但无论出于何种原因,它都不适合我。
我希望在按钮释放的第一个下降沿digitalRead(interruptPin)
会显示low
,因此state
不会设置标志。
由于 ISR 更新last_interrupt
时间,第一个下降沿之后的连续反弹似乎仍然被成功忽略。这让我相信去抖动不是问题,而是问题digitalRead(interruptPin)
。
去抖动似乎可以处理除一个状态之外的所有状态。当按钮被释放时,代码仍然偶尔将state
标志设置为HIGH
。
这是一些示例输出:
3643
(从开机等待约 3.6 秒后,我按下按钮,约 1 秒后松开)
在与上述相同的场景中,输出有时如下所示:
这显示我按下按钮,但也释放按钮。
我正在使用一个 UNO R3 和一个带有 1k 下拉电阻的瞬时触觉按钮。
我不确定此时出了什么问题。我希望这很简单,如果他们愿意,任何人都可以轻松地在他们的 arduino 上进行测试。