Что такое Typescript / Angular 7 (асинхронный) эквивалентно setTimeout () - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу создать «индикатор набора» для моего приложения чата. В настоящее время я пытаюсь заставить индикатор исчезнуть, как только пользователь перестал нажимать любую клавишу в течение 5 секунд.

Каков угловой способ сделать это?

1 Ответ

1 голос
/ 06 апреля 2019

Предполагая, что пользовательский ввод находится в потоке, назовите его userTypingStream$,

userTypingStream$.pipe(
   (debounceTime(5000)
).subscribe(() => this.displayIndicator = false);

Чтобы создать такой поток:

private userTypingStream$: Subject<string> = new Subject();
//...
onKeyPress = (event) => {
   this.userTypingStream$.next(event.target.value);
   //... and possibly the rest of the keypress handler here.
}

Связанные темы: наблюдаемые и предметы (довольномного неизбежного при разработке приложений Angular).Похоже, это достаточно хорошее место для старта:

https://angular.io/guide/observables

https://blog.angularindepth.com/rxjs-understanding-subjects-5c585188c3e1

...