signature: debounceTime(dueTime: number, scheduler: Scheduler): Observable

Discard emitted values that take less than the specified time between output

πŸ’‘ This operator is popular in scenarios such as type-ahead where the rate of user input must be controlled!

​​Ultimate RxJS​​


Example 1: Debouncing based on time between input

( StackBlitz )

// RxJS v6+
import { fromEvent } from 'rxjs';
import { debounceTime, map } from 'rxjs/operators';
// elem ref
const searchBox = document.getElementById('search');
// streams
const keyup$ = fromEvent(searchBox, 'keyup');
// wait .5s between keyups to emit current value
map((i: any) => i.currentTarget.value),

Additional Resources

πŸ“ Source Code:​