debounceWithKey static method

void debounceWithKey(
  1. String key,
  2. Function func, {
  3. Duration duration = const Duration(milliseconds: 300),
})

Implementation

static void debounceWithKey(
  String key,
  Function func, {
  Duration duration = const Duration(milliseconds: 300),
}) {
  // 使用key的hashCode和duration的组合作为唯一标识
  final timerKey = key.hashCode ^ duration.inMilliseconds;

  // 取消之前的timer(如果存在)
  _debounceTimers[timerKey]?.cancel();

  // 创建新的timer
  _debounceTimers[timerKey] = Timer(duration, () {
    Function.apply(func, []);
    // timer执行完成后,从Map中移除(可选,也可以保留用于清理)
    _debounceTimers.remove(timerKey);
  });
}