just_debounce_it
A simple debounce library. Supports debouncing by function and stream debouncing.
import 'package:just_debounce_it/just_debounce_it.dart';
Debounce.milliseconds(1000, print, ["Debounce World!"]);
Static methods
There are three methods available for debouncing. All methods differ only by the first parameter used to specify timeout values in different formats. The target
Function provided must be the same object every time Debounce
is called.
Debounce.seconds(int timeoutSeconds,
Function target,
[List<dynamic> positionalArguments,
Map<Symbol, dynamic> namedArguments])
Debounce.milliseconds(int timeoutMs,
Function target,
[List<dynamic> positionalArguments,
Map<Symbol, dynamic> namedArguments])
Debounce.duration(Duration timeout,
Function target,
[List<dynamic> positionalArguments,
Map<Symbol, dynamic> namedArguments])
To immediately dispatch a target
that has previously been debounced, use runAndClear
.
Optional args
can be provided to override the debounced arguments:
Debounce.runAndClear(
Function target,
[List<dynamic> positionalArguments,
Map<Symbol, dynamic> namedArguments])
To clear a debounced target
:
Debounce.clear(
Function target,
[List<dynamic> positionalArguments,
Map<Symbol, dynamic> namedArguments])
Stream Debouncing
Use DebounceStreamTransfomer
to debounce any stream by a specified duration.
DebounceStreamTransfomer(Duration timeout)
DebounceStreamTransfomer.seconds(int timeoutSeconds)
DebounceStreamTransfomer.milliseconds(int timeoutMs)
Stream debounceStream(Stream input) => input.transform(DebounceStreamTransfomer.seconds(1));
Example
A quick demonstration can be found in the example
directory. To run the example:
pub run example/main.dart