debounce method
函数防抖 在触发事件时,不当即执行目标操做,而是给出一个延迟的时间,在该时间范围内若是再次触发了事件,则重置延迟时间,直到延迟时间结束才会执行目标操做 如设定延迟时间为 1000ms 若是在 1000ms 内没有再次触发事件,则执行目标操做 若是在 1000ms 内再次触发了事件,则重置延迟时间,从新开始 1000ms 的延迟,直到 1000ms 结束执行目标操做
Implementation
Function() debounce([Duration delay = const Duration(seconds: 1)]) {
Timer? timer;
return () {
if (timer?.isActive ?? false) timer?.cancel();
timer = Timer(delay, () => this.call());
};
}