Open xxleyi opened 4 years ago
节流:在密集的事件流中,以固定时间间隔执行回调函数。
const throttle = (callback, interval) => { let throttleTimeout let shouldHandleEvent = true let currentEvent = null const throttledEventHandler = event => { // 更新当前事件到闭包变量 currentEvent = event // 按需执行回调动作 if (shouldHandleEvent) { // 执行回调 callback(currentEvent) // 清除当前事件 currentEvent = null // 设置节流器 throttleTimeout = setTimeout(() => { // 清除节流器 clearTimeout(throttleTimeout) // 允许回调 shouldHandleEvent = true if (currentEvent) { throttledEventHandler(currentEvent) } }, interval) // 禁止回调 shouldHandleEvent = false } } return throttledEventHandler }
节流:在密集的事件流中,以固定时间间隔执行回调函数。