debounce function
debounce action dispatching in specified duration
Implementation
Rule debounce([Duration duration = Duration.zero]) {
return (dispatcher, next) {
for (final prevDispatcher in dispatcher.dispatching) {
if (prevDispatcher.action.runtimeType == dispatcher.action.runtimeType) {
prevDispatcher.cancel();
}
}
dispatcher.on(cancel: Timer(duration, next).cancel);
};
}