run method
Runs the provided action after the debounce delay.
If this method is called again before the delay expires, the previous call is cancelled and a new delay starts.
Implementation
void run(VoidCallback action) {
cancel();
timer = Timer(delay, action);
}