FORKED FROM https://github.com/PlugFox/throttling
THROTTLING DART LIBRARY
contain "throttling" and "debouncing" classes
Using
See demonstration of use on the dartpad.dartlang.org
Throttling example
final Throttling thr = new Throttling(duration: Duration(seconds: 2));
thr.throttle(() {print(' *ping #1');});
await Future.delayed(Duration(seconds: 1));
thr.throttle(() {print(' *ping #2');});
await Future.delayed(Duration(seconds: 1));
thr.throttle(() {print(' *ping #3');});
Debouncing example
final Debouncing deb = new Debouncing(duration: Duration(seconds: 2));
deb.debounce(() {print(' *ping #1');});
await Future.delayed(Duration(seconds: 1));
deb.debounce(() {print(' *ping #2');});
await Future.delayed(Duration(seconds: 1));
deb.debounce(() {print(' *ping #3');});