debounce method

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

Debounce value changes - callback is called after duration of inactivity

Implementation

void debounce(Duration duration, void Function(T value) callback) {
  RxTimingUtils._register(this);
  Timer? timer;

  void listener() {
    timer?.cancel();
    timer = Timer(duration, () {
      callback(value);
    });

    // Track the timer for cleanup
    if (timer != null) {
      RxTimingUtils._getTimingData(this)?.addTimer(timer!);
    }
  }

  addListener(listener);
}