规则
例子:在 debounce 已经停止了,leading 已经重新可以执行的期间,去手动调用 flush,此时直接返回上一次的执行结果
回调
延时
可选
首调用;debounce本是尾调用,开启了首调用后,除非手动取消否则调用后最少执行两次,也就是会执行首尾调用各一次
返回一个函数,并给该函数添加cancel取消执行和flush立即执行两个子函数
let times = 0;const wrapFn = debounce(() => times++, 100);wrapFn();times; // 0// 立即执行上一次的防抖函数wrapFn.flush();times; // 1wrapFn();// 取消上一次的防抖wrapFn.cancel();await sleep(110);times; // 1 复制
let times = 0;const wrapFn = debounce(() => times++, 100);wrapFn();times; // 0// 立即执行上一次的防抖函数wrapFn.flush();times; // 1wrapFn();// 取消上一次的防抖wrapFn.cancel();await sleep(110);times; // 1
防抖函数
规则