javascript - 取消lodash的去抖动,不调用函数
问题描述
我的问题是,是否有办法取消 lodash 的去抖动,而不调用去抖动函数。.cancel()
from lodash 仍然调用该函数。
也许我正在寻找错误的方法。如果是这样,还有其他解决方案吗?
先感谢您。
解决方案
调用cancel
去抖动函数上的方法不会调用它,除非它位于超时的后沿。您可以使用该trailing
选项进行配置。文档
const fn1 = () => console.log('Called 1');
const fn2 = () => console.log('Called 2');
const fn3 = () => console.log('Called 3');
const debouncedFn1 = _.debounce(fn1, 1000);
const debouncedFn2 = _.debounce(fn2, 1000);
const debouncedFn3 = _.debounce(fn3, 1000, { trailing: false });
// Will not log
debouncedFn1();
setTimeout(debouncedFn1.cancel, 200);
// Will log
debouncedFn2();
setTimeout(debouncedFn2.cancel, 1000);
// Will not log
debouncedFn3();
setTimeout(debouncedFn3.cancel, 1000);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.19/lodash.min.js"></script>
推荐阅读
- postgresql - postgresql 权限被拒绝
- javascript - 如何在 Javascript 脚本中使用 HTML 代码
- react-native - 行为反应本机链接
- javascript - ECMAScript 规范提到的内在对象创建顺序是否在某处定义?
- python - Python - 在if语句中的for循环中打破if语句
- flutter - Flutter中为什么Container不限制ListView的高度?
- excel - 如何制作单个、非重复的 Outlook 日历条目?
- cmake - CMake:如何将定义和标志作为字符串常量编译到我的 C(++) 程序中?
- android - 将 observables 列表压缩到另一个 Zip observable RxJava2
- r - 在闪亮的过滤数据表后导出xlsx