//防抖 Promise 版
function debounce(fn, delay = 500) {
let timer = null
return (...args) => {
clearTimeout(timer)
return new Promise((resolve) => {
timer = setTimeout(() => {
resolve(fn(...args))
}, delay)
})
}
}
// 节流 Promise 版
function throttle(fn, delay = 100) {
let timer = null
return (...args) => {
if (timer) {
return
}
return new Promise((resolve) => {
timer = setTimeout(() => {
resolve(fn(...args))
timer = null
}, delay)
})
}
}
没有了 this,更易于理解。讨厌的 this (逃