throttle function

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

throttle high order function.

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

It is a dart implementation of throttle, see more details on:

Implementation

dynamic throttle(Function callback, int interval) {
  var enableCall = true;
  return VarArgsFunction((List<dynamic> positionalArguments,
      [Map<Symbol, dynamic>? namedArguments]) {
    if (!enableCall) return;
    enableCall = false;
    Function.apply(callback, positionalArguments, namedArguments);
    Future.delayed(Duration(milliseconds: interval), () => enableCall = true);
  });
}