debounce.js文件里 (例子不再贴出,根据上面的替换就行)
let debounceTimer = null;
export function debounce(callback, duration, isFirstExecution) {
return function (...args) {
let ctx = this;
const delay = function () {
debounceTimer = null;
console.log('定时器函数执行了')
if (!isFirstExecution) callback.apply(ctx, args);
};
let executeNow = isFirstExecution && !debounceTimer;
clearTimeout(debounceTimer);
debounceTimer = setTimeout(delay, duration);
if (executeNow) callback.apply(ctx, args);
};
};
// isFirstExecution为true时只执行第一次,为false时只执行最后一次
debounce防抖函数封装
于 2024-02-20 11:59:21 首次发布