debounce function

dynamic debounce(
  1. Function callback,
  2. int interval
)

debounce high order function.

This function accept a callback function and a interval in miliseconds unit.

It is a dart implementation of debounce, see more details on: https://programmingwithmosh.com/javascript/javascript-throttle-and-debounce-patterns/ https://www.telerik.com/blogs/debouncing-and-throttling-in-javascript

Implementation

dynamic debounce(Function callback, int interval) {
  Timer? debounceTimeoutId;
  return VarArgsFunction((List<dynamic> positionalArguments,
      [Map<Symbol, dynamic>? namedArguments]) {
    debounceTimeoutId?.cancel();
    debounceTimeoutId = Timer(Duration(milliseconds: interval),
        () => Function.apply(callback, positionalArguments, namedArguments));
  });
}