/**
*防抖:接收time:number
*@return boolean
*/
let arr = [];
const antiShake = (time) => {
return new Promise((resolve) => {
const timestamp = +new Date();
arr.push(timestamp)
arr = arr.filter((v) => {
return +v + time > timestamp
});
if (arr.length === 1) {
resolve(true)
setTimeout(() => {
arr = []
},time)
} else {
resolve(false)
}
})
}
export default antiShake
这边已经在mian.js中全局挂载
async name() => {
const shake = await this.$utils.debounce(3000)
}
/*
shake结果为 true | false
3000为防抖秒数
*/