debounce method

void debounce()

Implementation

void debounce() {
  final key = _generateKey();
  final hasTimer = _funcDebounce[key] != null;
  if (immediate && !hasTimer) {
    target?.call();
  }
  _funcDebounce[key]?.cancel();
  _funcDebounce[key] = Timer(Duration(milliseconds: timeout), () {
    final t = _funcDebounce.remove(key);
    t?.cancel();
    if (!immediate) {
      target?.call();
    }
  });
}