开发过程中,我们有时需要对 function 或者 fetch 接口加保护,禁止事件被连续触发多次。
首先新建一个 OnceTap.js 文件
// eslint-disable no-undef
let isCalled = false;
let timer;
//@param callBack 回调函数
// @param interval 定时器
let OnceTap = (callBack, interval = 1000) => {
if (!isCalled) {
isCalled = true;
clearTimeout(timer);
timer = setTimeout(() => {
isCalled = false;
}, interval);
return callBack();
}
};
export default OnceTap;
调用
import OnceTap from "./OnceTap";
dispose=()=>{
OnceTap (callback)
}
也有其他的解决办法 比如点击按钮后一段时间内让按钮disabled一段时间后再恢复