debounce static method

VoidCallback debounce(
  1. Function fn, [
  2. int t = 500
])

防止多次点击

Implementation

static VoidCallback debounce(Function fn, [int t = 500]) {
  return () {
    if (downFn != fn) {
      clicks = 0;
      downFn = fn;
      jumpTime = 0;
    }
    if (jumpTime >= (DateTime.now().millisecondsSinceEpoch - t) &&
        clicks <= 10) {
      clicks++;
      jumpTime = DateTime.now().millisecondsSinceEpoch;
    } else {
      jumpTime = DateTime.now().millisecondsSinceEpoch;
      clicks = 0;
      fn();
    }
  };
}