知食记
搜索文档…
Throttle
节流函数总结

定义

throttle和debounce非常像。唯一的区别就是,throttle会设置固定的时间间隔,即使事件还没有间断大于某个阈值,只要时间间隔到了,就会执行一次。
简单来说,throttle是在debounce最后会执行一次的基础上,穿插在中间固定时间间隔执行。

ES6实现

1
function throttle(fn, wait) {
2
let timeout, lastTime = 0
3
return (...args) =>{
4
const currentTime = Date.now()
5
if(current >= lastTime + wait){
6
lastTime = current
7
fn(...args)
8
}else {
9
clearTimeout(timeout)
10
timeout = setTimout(()=> fn(...args), wait)
11
}
12
}
13
}
Copied!
复制链接