防抖
let timeout
export default function Debounce(func, wait = 300, immediate = false) {
if (timeout !== null) clearTimeout(timeout)
if (immediate) {
var callNow = !timeout
timeout = setTimeout(function() {
timeout = null
}, wait)
if (callNow) typeof func === 'function' && func()
} else {
timeout = setTimeout(function() {
typeof func === 'function' && func()
}, wait)
}
}
节流
let timer, flag
export default function throttle(func, wait = 300, immediate = true) {
if (immediate) {
if (!flag) {
flag = true
typeof func === 'function' && func()
timer = setTimeout(() => {
flag = false
}, wait)
}
} else {
if (!flag) {
flag = true
timer = setTimeout(() => {
flag = false
typeof func === 'function' && func()
}, wait)
}
}
}