1

I have this text input with a debounceTime pipe, so that we don't hit the server too often while the user is typing the word:

this.keyUp$
  .pipe(debounceTime(500))
  .subscribe(data => this.onInputChanged.emit(data));

However, if the user hits Enter after entering the data, I would like to call onInputChanged immediately.

How can I bypass the debounceTime pipe depending on the key?

Lou
  • 4,244
  • 3
  • 33
  • 72

1 Answers1

1

You can merge your streams after debounceTime

this.keyUp$.pipe(
        debounceTime(500),
        mergeWith(this.keyEnter$))
       .subscribe(data => this.onInputChanged.emit(data));

just keep in mind that after debounce time it will still emmit, so you have to add additiona filtering to ignore this pipeline if request is already in progress

Antoniossss
  • 31,590
  • 6
  • 57
  • 99