CodePráticov3.1.2
Angular

Como aplicar debounce em pesquisa no Angular

Reduza chamadas desnecessárias à API enquanto o usuário digita usando RxJS.

Por que usar debounce?

Sem debounce, cada tecla pode disparar uma requisição. Com debounceTime, você espera o usuário parar de digitar por alguns milissegundos.

Exemplo

this.pesquisa$
  .pipe(
    debounceTime(400),
    distinctUntilChanged()
  )
  .subscribe(valor => {
    this.buscar(valor);
  });

Quando há API

Para chamadas HTTP, switchMap pode cancelar a requisição anterior quando um novo termo chega.

Boa prática: entre 300 ms e 500 ms costuma ser um bom ponto inicial para campos de busca.