Recently I was reading up on RxJS’s debounce() and throttle() operators, trying to figure out how they exactly work. The typical place to check this information is this nice website called learnrxjs.io, which in this case gives this definition for debounce() :

Discard emitted values that take less than the specified time, based on selector function, between output.

and the following for throttle() :

Emit value on the leading edge of an interval, but suppress new values until durationSelector has completed.

Both description seem to indicate that you somehow need to specify some sort of time-span or interval for these operators, however, a look at the examples provided in the same site shows that this is indeed wrong:

const debouncedExample = example.pipe(debounce(() => timer(1000))); const throttleExample = source.pipe(throttle(val => interval(2000)));