Mobiles_programming/lib/components/utils/debounce.dart

21 lines
572 B
Dart

import 'dart:async';
import 'dart:ui';
class Debounce {
factory Debounce() => _instance;
Debounce._();
static final Debounce _instance = Debounce._();
static Timer? _timer;
// если в течении 0.5 сек появится новый вызов (изменится текст в поле ввода)
// то текущий вызов заменяется новым
static void run (
VoidCallback action, {
Duration delay = const Duration(milliseconds: 500),
}) {
_timer?.cancel();
_timer = Timer(delay, action);
}
}