debounceTime method

Stream<T> debounceTime(
  1. Duration duration
)

Implementation

Stream<T> debounceTime(Duration duration) {
  Timer? timer;
  return transform(
    StreamTransformer.fromHandlers(
      handleData: (T data, EventSink<T> sink) {
        timer?.cancel();
        timer = Timer(duration, () => sink.add(data));
      },
      handleDone: (EventSink<T> sink) {
        timer?.cancel();
        sink.close();
      },
    ),
  );
}