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

我的场景:

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

问题:

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

猜想:

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

解决方案:

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);
                                                                                                                                                                                                                                          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/329222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT quick基础:组件gridview

组件gridview与android中gridview布局效果相同。 一、下面记录qt quick该组件的使用方法。 方法一: // ContactModel.qml import QtQuick 2.0ListModel {ListElement {name: "1"portrait: "icons/ic_find.png"}ListElement {name: "2&quo…

《Kali渗透基础》16. 密码攻击

kali渗透 1:身份认证2:密码破解2.1:应用场景2.2:方法简介 3:字典生成工具3.1:Crunch3.2:CUPP3.3:Cewl3.4:JTR 4:密码破解工具4.1:在线密码破解4.1…

AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(2)

前面分享了平台对运维效率提升的重要性和挑战以及基于大模型的平台建设解决方案,新来的朋友点这里,一键回看精彩原文。 基于大模型构建高效的运维知识及智能问答平台(1)https://mp.csdn.net/mp_blog/creation/editor/135223109 …

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后,往往并不习惯 shell 编程,因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下: vscode 下载 Bash Debug 插件 mac 升级 bash 版本(因为此 vscode 插件需要 b…

腾讯云的域名使用阿里云服务器配置

因为近期云服务器到期了,之前的域名已经完成了备案不想轻易回收。于是就换了个厂商,从腾讯云换到了阿里云。但是因为两个厂商不互通。我又不想把域名转入到阿里云。所以就开启了配置之路,一路磕磕绊绊。给大家整理一份顺序,一步到…

深入解析:如何使用Java、SpringBoot、Vue.js和MySQL构建课表管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Jira 宣布Data Center版涨价5%-15%,6年内第8次提价

近日,Atlassian官方面向合作伙伴发布2024年涨价通知: 自2024年2月15日起,旗下核心产品Jira Software、Confluence、Jira Service Management的DC版本(Data Center版本)价格提高5%-15%(涨幅与坐席数阶梯相关…

Pod控制器:

Pod控制器: Pv pvc 动态PV Pod控制器:工作负载。WordLoad,用于管理pod的中间层 ,确保pod资源符合预期的状态 预期状态: 副本数容器的重启策略镜像的拉取策略 Pod出现故障时的重启等等 Pod控制器的类型&#xff1a…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

uniapp + node.js 开发问卷调查小程序

前后端效果图 后端&#xff1a;nodejs 12.8 ; mongoDB 4.0 前端&#xff1a;uniapp 开发工具&#xff1a;HBuilderX 3.99 前端首页代码 index.vue <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71AjEX06wpc4wbcV_tQ?pwdl9zp --><template><view class&q…

ubuntu系统(10):使用samba共享linux主机中文件

目录 一、samba安装步骤 1、Linux主机端操作 &#xff08;1&#xff09;安装sabma &#xff08;2&#xff09;修改samba配置文件 &#xff08;3&#xff09;为user_name用户设置samba访问的密码 &#xff08;4&#xff09;重启samba服务 2、Windows端 二、使用 1、代码…

CMake TcpServer项目 生成静态库.a / 动态库.so

CMake 实战构建TcpServer项目 静态库/动态库-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135608829?spm1001.2014.3001.5501 在这篇博客的基础上&#xff0c;我们把头文件放在include里边&#xff0c;把源文件放在src里边&#xff0c;重新构建 hehedali…

网页设计(一)开发环境配置与HTML基础

一、使用HBuilderX创建项目和文件 加粗样式HX创建HTML文档的模板位置 template.html模板内容 1.创建HTML项目 创建项目引导界面 新建项目窗口 Web-2009030199项目所在位置图 2.在项目下新建prj_1_2.html文件 创建文件引导界面 新建html文件界面 3.新建prj_1_2.ht…

什么是DNS(域名系统)

域名系统&#xff08;DNS&#xff09;像是互联网的电话簿&#xff0c;将人们容易记住的网址转换成计算机能理解的IP地址。 没有DNS&#xff0c;我们就需要记住复杂的数字序列来访问网站 DNS的基本概念 定义&#xff1a;DNS是一个分布式数据库&#xff0c;它将域名&#xff08…

智能小程序小部件(Widget)导航、地图、画布等组件,以及开放能力、原生组件说明

智能小程序小部件(Widget)导航、地图、画布等组件&#xff0c;以及开放能力、原生组件说明。 导航组件 navigator 页面链接&#xff0c;控制小程序的跳转。navigator 子节点的背景色应为透明色。 属性说明 属性名类型默认值必填说明urlstring是跳转地址deltanumber1否当 …

【开发实践】前端jQuery+gif图片实现载入界面

一、需求分析 载入界面&#xff08;Loading screen&#xff09;是指在计算机程序或电子游戏中&#xff0c;当用户启动应用程序或切换到新的场景时&#xff0c;显示在屏幕上的过渡界面。它的主要作用是向用户传达程序正在加载或准备就绪的信息&#xff0c;以及提供一种视觉上的反…

Vue3中provide,inject使用

一&#xff0c;provide,inject使用&#xff1a; 应用场景&#xff1a;向孙组件传数据 应用Vue3碎片&#xff1a; ref&#xff0c;reactive&#xff0c;isRef&#xff0c;provide, inject 1.provide,inject使用 a.爷组件引入 import {ref,provide} from vue const drinkListre…

Spring Boot 中实现定时任务(quartz)功能实战

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

BuildRoot配置RTL8822CE WIFIBT模块(WIFI部分)

TinkerBoard2主板自带的无线模块为RTL8822CE&#xff0c;PCIe接口 之前在风火轮下载的Linux源码编译出来的BuildRoot根文件系统没有相关的驱动文件 [rootrk3399:/]# find . -name *.ko [rootrk3399:/]# lsmod Module Size Used by Not tainted [rootrk33…

第二百七十一回

文章目录 1. 概念介绍2. 实现方法2.1 主要步骤2.1 注意事项 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何加载网络图片"相关的内容&#xff0c;本章回中将介绍如何加载本地图片.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在上一章回…