AppFlowy/frontend/appflowy_flutter/lib/util/debounce.dart
2023-03-22 14:49:15 +08:00

25 lines
380 B
Dart

import 'dart:async';
import 'package:flutter/material.dart';
class Debounce {
final Duration duration;
Timer? _timer;
Debounce({
this.duration = const Duration(milliseconds: 1000),
});
void call(VoidCallback action) {
dispose();
_timer = Timer(duration, () {
action();
});
}
void dispose() {
_timer?.cancel();
_timer = null;
}
}