lodash debounce cancel() не останавливает выполнение debounce

Я написал угловое приложение, в котором я делаю http-вызовы для каждого события modelChange. Я использовал lodash _.debounce(). Проблема в том, что я не могу отменить эти вызовы после первого успешного выполнения debounce.

  modelChangeEvent(item):void {
   const _this = this;
   let debounceObj = _.debounce(function(){
     _this.makeHttpCall(item);
     debounceObj.cancel();
    },600);
  debounceObj();
  }

https://lodash.com/docs/4.17.15#debounce


person Nithin P.H    schedule 10.08.2020    source источник
comment
Почему вы не используете rxjs? Он поставляется с Angular и уже имеет десятки подобных функций.   -  person C.Champagne    schedule 10.08.2020


Ответы (1)


Реализовано с использованием Rxjs debounceTime() и distinctUntilChanged()

detectInput:any = new Subject();

ngOnInit(){
  this.detectInput.pipe(debounceTime(400),distinctUntilChanged()).subscribe(value=>{
    this.makeHttpCall(value)
  })
}

modelChangeEvent(item):void {
 this.detectInput.next(item);
}
person Nithin P.H    schedule 16.08.2020