debounce method

  1. @protected
Future<void> debounce({
  1. Duration duration = const Duration(milliseconds: 500),
})
inherited

Wait to collect multiple method calls for certain duration before allowing only one method call to proceed

Implementation

@protected
Future<void> debounce({
  Duration duration = const Duration(milliseconds: 500),
}) async {
  if (_debounceTimer?.isActive == true) _debounceTimer?.cancel();
  final debounceCompleter = Completer();
  _debounceTimer = Timer(
    duration,
    () => debounceCompleter.complete(),
  );
  await debounceCompleter.future;
}