记录一个工作中经常用到的节流和防抖
首先简单介绍一下两个名词:
防抖是将多次执行变为最后一次执行
节流是将多次执行变成每隔一段时间执行
看代码
//控制每隔一段时间 执行一次
let time = null,flag = false;
function click(){
//每次进来就清空定时器
clearTimeout(time)
if(flag){
flag = false;
a().then(res=>{
console.log(res)
})
}else{
console.log('操作频繁')
}
// 设置定时器 让每隔500ms执行一次
time = setTimeout(()=>{
flag = true;
},500)
}
//不管执行多少次 每次都执行最后一次
let timer = null;
let flag = true
function click(){
//第一次可以进来
if(!flag){
return;
}
flag = false
//第一个次执行这个定时器
setTimeout(()=>{
a().then(res=>{
flag = true;
console.log(res)
})
},100)
}