javascript - 按键后重置 lodash 去抖动
问题描述
在我的 javascript 应用程序中,我在输入值更改时触发该函数。我想用 lodash 函数推迟 ajax 调用debounce
。问题是该功能仅适用于第一次按键。例如,从我在输入中写的第一个字母开始 1 秒后,我盯着打字和函数调用 ajax。我想推迟每次按键的调用,但是当我在 1 秒后输入时,每次都会触发函数。你能告诉我如何解决吗?谢谢。
<custom-select :on-search="onChange"></custom-select>
function onChange (text) {
_.debounce(function () {
// do ajax call
}, 1000);
}
解决方案
您应该使用相同的“debouncer”,而不是debounce
每次更改都使用新功能:
const bounceIt = _.debounce(function () {
console.log("pressed");
}, 1000);
document.getElementById("text").addEventListener("keydown", function() {
bounceIt();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
<input id="text" type="text"/>
推荐阅读
- sql-server - 使用 AT TIME ZONE 时无法构建面向 Azure SQL 数据库的 Visual Studio 数据库项目
- powerbi - RLS(行级安全性)是否限制 DAX 查询中扫描的数据?
- java - 环境变量的自动装配依赖项注入失败
- powershell - Powershell - 从 CSV 变量创建键/值对
- tsql - SSRS 报告中多列的中位数
- python - Groupby 不同数据类型的多列并聚合到列表
- c - 将日期字符串转换为 int
- java - 你如何编写一个程序来从java中的列表中将度数转换为弧度
- vba - 如何在 MS Access 2016 中进行多选下拉和搜索子表单
- python - 如何使用 LabelBinarizer 对正确的训练和测试进行一次热编码