dev
dart 19 lines 318 Bytes
Raw
1 import 'dart:async';
2 import 'package:flutter/foundation.dart';
3
4 class Debounce {
5 Debounce(this.duration);
6
7 final Duration duration;
8 Timer? _timer;
9
10 void run(VoidCallback action) {
11 _timer?.cancel();
12 _timer = Timer(duration, action);
13 }
14
15 void cancel() {
16 _timer?.cancel();
17 _timer = null;
18 }
19 }