0 purchases
bouncer
bouncer #
Bouncer debounces actions and makes sure any outdated answers will be ignored.
Problem statement #
When user actions lead to starting several concurrent requests to some slow resource,
there can be 2 problems:
exhausting of the resource
answers coming in random order
This library aims to solve both problems.
See example for reference.
Usage #
instead of
var response = await _longRunningRequest(parameters)
_responseHandler(response);
copied to clipboard
let's debounce:
_debounceSubscription = TimerBouncer(Duration(milliseconds: 200)).debounce(
request: () => _longRunningRequest(parameters),
responseHandler: _responseHandler,
oldSubscription: _debounceSubscription,
);
copied to clipboard
don't forget to dispose _debounceSubscription when it's no longer in use.
@override
dispose() {
_debounceSubscription?.cancel();
super.dispose();
}
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.