reduce calls to offlinestorage while uploading attachments using debounce
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
/// Map of timeouts being debounced
|
||||
Map timeouts = {};
|
||||
|
||||
/// Runs a function avoiding calling it too many times in a [timeoutMS] window
|
||||
void debounce({
|
||||
@required Duration timeout,
|
||||
@required Function target,
|
||||
@required List arguments,
|
||||
}) {
|
||||
if (timeouts.containsKey(target)) {
|
||||
timeouts[target].cancel();
|
||||
}
|
||||
|
||||
final timer = Timer(timeout, () {
|
||||
Function.apply(target, arguments);
|
||||
});
|
||||
|
||||
timeouts[target] = timer;
|
||||
}
|
||||
Reference in New Issue
Block a user