debounce_throttle 2.0.0 
debounce_throttle: ^2.0.0 copied to clipboard
A debouncer and throttle that works with Futures, Streams, and callbacks.
debounce_throttle #
A debouncer and throttle that works with Future, Stream, and callbacks.
| Class | Purpose | 
|---|---|
Debouncer | 
Wait for changes to stop before notifying. | 
Throttle | 
Notifies once per Duration for a value that keeps changing. | 
Usage #
  final debouncer = Debouncer<String>(Duration(milliseconds: 200));
  // Run a search whenever the user pauses while typing.
  textEditingController.addListener(() => debouncer.value = textEditingController.text);
  debouncer.values.listen((search) => submitSearch(search));
  final throttle = Throttle<double>(Duration(milliseconds: 100));
  // Limit being notified of continuous sensor data.
  sensor.addListener(throttle.setValue);
  throttle.values.listen((data) => print('$data'));
example/main.dart output #
Tick     : ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed  : -----------     -  --   - -  -    --  - -    -   -    -  -   - ---  -  - -  - -    -    -    - - - - --    -    -  -   - - -   --    - --    ---    -   -  - -     -    -     -  -  -
Debounced:              D     D   D     D  D          D    D   D    D  D          D         D    D    D             D    D    D  D       D    D       D      D    D        D     D    D     D
Throttled: T  T  T  T  T   T  T  T  T   T  T  T  T  T   T   T    T  T   T  T  T  T  T  T  T   T    T    T  T  T  T  T  T   T  T   T  T  T  T  T  T  T   T  T   T   T  T  T    T    T     T  T  T