debounce method

Observable<T> debounce (Stream window(T event))

Transforms a Stream so that will only emit items from the source sequence if a window has completed, without the source sequence emitting another item.

This window is created after the last debounced event was emitted. You can use the value of the last debounced event to determine the length of the next window.

A window is open until the first window event emits.

debounce filters out items emitted by the source Observable that are rapidly followed by another emitted item.

Interactive marble diagram


new Observable.fromIterable([1, 2, 3, 4])
  .debounce((_) => TimerStream(true, const Duration(seconds: 1)))
  .listen(print); // prints 4


Observable<T> debounce(Stream window(T event)) =>