debounce<T> method

  1. @override
Subscription debounce<T>({
  1. required Future<T> request(),
  2. required void responseHandler(
    1. T
    ),
  3. 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,
  );
}