PIbd-31_Belianin_N._N._PMD/lib/utils/debounce.dart

24 lines
825 B
Dart
Raw Normal View History

2024-09-30 04:34:25 +04:00
import 'dart:async';
import 'dart:ui';
class Debounce {
// Фабричный конструктор, возвращающий экзепляр класса Debounce. Паттерн Singleton
factory Debounce() => _instance;
// Приватный конструктор (Не даёт создание класса извне)
Debounce._();
// Статический экземпляр класса
static final Debounce _instance = Debounce._();
static Timer? _timer;
// Статический метод, где action функция, совершающая действие, а delay совершает задержку)
static void run(
{required VoidCallback action,
Duration delay = const Duration(milliseconds: 500)}) {
_timer?.cancel();
_timer = Timer(delay, action);
}
}