debounce() operator for
Flow discards rapid changes in data. It only
emits objects downstream if the upstream
Flow has not changed for the supplied
period in milliseconds. Also, the last object emitted by the upstream flow
is passed downstream if the upstream flow is closed.
The simple form of
debounce(), shown here, takes a fixed delay period in milliseconds.
In this case, it is 250 milliseconds. While the initial
4, we only see the latter two. The first three
are all replaced by later values faster than 250 milliseconds, so they are skipped.
3 is emitted because of the 400 millisecond delay that follows it, and
is emitted because the
Flow is closed afterwards.