debounce static method
Will delay the execution of onExecute
with the given duration
. If another call to
debounce() with the same tag
happens within this duration, the first call will be
cancelled and the debouncer will start waiting for another duration
before executing
onExecute
.
tag
is any arbitrary String, and is used to identify this particular debounce
operation in subsequent calls to debounce() or cancel().
If duration
is Duration.zero
, onExecute
will be executed immediately, i.e.
synchronously.
Implementation
static void debounce(
String tag, Duration duration, EasyDebounceCallback onExecute) {
if (duration == Duration.zero) {
_operations[tag]?.timer.cancel();
_operations.remove(tag);
onExecute();
} else {
_operations[tag]?.timer.cancel();
_operations[tag] = _EasyDebounceOperation(
onExecute,
Timer(duration, () {
_operations[tag]?.timer.cancel();
_operations.remove(tag);
onExecute();
}));
}
}