В приложении Angular7 я захватил событие KeyUp числового ввода с помощью этого HTML-кода:
<input fxFlex
type="number"
formControlName="DM"
(keyup)="changeDM()">
</div>
Я использую debounceTime (500) для задержки вызова службы, которая обрабатывает форму.Я пишу 1, 2, 3, 4 ... цифру и вижу, что debounceTime (500) работает правильно, но при этом дублирует вызов службы.Посмотрите код:
subject: Subject<any> = new Subject();
.....
this.subj.pipe(debounceTime(500)).subscribe(() => {
console.log('==CALL TO SERVICE==');
this.service.setForm( this.form.valid, this.form.value );
});
changeDM(): void {
console.log('changeDM==============');
this.subject.next();
}
и образ консоли браузера с четырьмя кнопками:
Почему сервис называетсядва раза?Спасибо.
изображение, на котором я показываю содержимое ввода после каждого нажатия.Импульс 8 и ожидание более 500 мс, импульс 4567 ... Вы можете увидеть результат.