debounce<T> method
Subscription
debounce<T>({
- required Future<
T> request(), - required void responseHandler(
- T
- Subscription? oldSubscription,
override
debounce user action from response handler and previous action
Implementation
@override
Subscription debounce<T>({
required Future<T> Function() request,
required void Function(T) responseHandler,
Subscription? oldSubscription,
}) {
oldSubscription?.cancel();
var subscriptionCompleter = Completer<StreamSubscription<T>>();
return Subscription(
timer: Timer(
bounceDuration,
() => subscriptionCompleter
.complete(request().asStream().listen(responseHandler)),
),
subscription: subscriptionCompleter,
);
}