debounce method

VoidCallback debounce(
  1. Duration duration,
  2. void action(
    1. T value
    )
)

Registers a debounced callback which is invoked only after the notifier's value is stable for the specified duration.

Implementation

VoidCallback debounce(Duration duration, void Function(T value) action) {
  Timer? debounceTimer;

  void listener() {
    debounceTimer?.cancel();
    debounceTimer = Timer(duration, () => action(value));
  }

  addListener(listener);

  return () => {
        debounceTimer?.cancel(),
        removeListener(listener),
      };
}