@mkrichet

RxJs: Как правильно сделать debounce?

Доброе время суток!

Мне нужно, чтобы метод (this.goToProc(proc)) вызывался не чаще чем в пол секунды.

Пробую так:

...
import {debounceTime} from 'rxjs/operators';
...
  ngOnInit(): void {
    this.dataService.proc.subscribe({
      next: (proc) => {
        this.dataService.proc.pipe(
          debounceTime(500)
        ).subscribe(e => this.goToProc(proc));
      }
    });
  }


Но он делает задержку в пол секунды и вызывает все вызовы которые приходили. Аналогично если:

...
import {debounce } from 'rxjs/operators';
import { timer } from 'rxjs';
...
  ngOnInit(): void {
    this.dataService.proc.subscribe({
      next: (proc) => {
        this.dataService.proc.pipe(
          debounce(() => timer(500))
        ).subscribe(e => this.goToProc(proc));
      }
    });
  }


Как правильно сделать debounce?
  • Вопрос задан
  • 915 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы