取消lodash.throttle中的默认执行完最后一次函数

我的场景:

**我有一个列表,我考虑用户连续点击删除的情况,如果用户连续点击,可能会导致数据库中的数据被删除了,但是我还需要刷新数据列表才能反应到页面上,可是这时候用户又点击了同一条数据的删除按钮多次,导致发起了多次删除一个已经不存在的数据的请求,于是接口报错。于是我加上了loadash.**throttle。

问题:

但是在使用了lodash.throttle后,我发现在连续点击的过程中是按照我预想的进行的,的确有进行节流,但是在我我连续点击后,这一轮点击下来还是会报错一次,我查看请求,发现是最后一次的请求报的错。 而且这问题是必现的,只要出现了连续点击。

猜想:

是不是lodash.throttle中的设计逻辑就是默认会把最后一次请求给发送出去,也就是为了适用于输入框的场景,于是我查了一下,果真如此:

解决方案:

javascript 复制代码
const _ = require('lodash');

// 原始的要节流的函数
function myFunction() {
  console.log('Function called');
}

// 使用throttle创建一个节流函数,{ trailing: false }表示取消执行最后一次
const throttledFunction = _.throttle(myFunction, 1000, { trailing: false });

// 在一定时间间隔内多次调用
throttledFunction();
setTimeout(() => throttledFunction(), 500);
setTimeout(() => throttledFunction(), 1000);
setTimeout(() => throttledFunction(), 1500);
相关推荐
CoderYanger10 小时前
前端基础——CSS练习项目:百度热榜实现
开发语言·前端·css·百度·html·1024程序员节
i_am_a_div_日积月累_11 小时前
10个css更新
前端·css
她是太阳,好耀眼i11 小时前
Nvm 实现vue版本切换
javascript·vue.js·ecmascript
蒲公英100111 小时前
在wps软件的word中使用js宏命令设置表格背景色
javascript·word·wps
倚栏听风雨11 小时前
npm命令详解
前端
用户479492835691511 小时前
为什么我的react项目启动后,dom上的类名里没有代码位置信息
前端·react.js
键盘飞行员11 小时前
Vue3+TypeScript项目中配置自动导入功能,遇到了问题需要详细的配置教程!
前端·typescript·vue
han_11 小时前
前端高频面试题之Vue(初、中级篇)
前端·vue.js·面试
一枚前端小能手12 小时前
📜 `<script>`脚本元素 - 从加载策略到安全性与性能的完整指南
前端·javascript
掘金安东尼12 小时前
TypeScript为何在AI时代登顶:Anders Hejlsberg 的十二年演化论
前端·javascript·面试