import 'dart:async'; class Debouncer { static Timer? _timer; static void run(void Function() callback, [Duration duration = const Duration(milliseconds: 500)]) { if (_timer?.isActive ?? false) { _timer!.cancel(); } _timer = Timer(duration, callback); } } void main() { // Debouncer debouncer = Debouncer(Duration(seconds: 5)); print('program running'); // debouncer.run(() { // print('Terdebounce'); // }); Debouncer.run( () => print('terdebounce'), Duration(seconds: 5) ); }