Я использую Bootstrap (6.1.0) TypeAhead с питанием от Angular (9) и определяю его функцию поиска следующим образом:
search = (text$: Observable<string>) => {
return text$.pipe(
debounceTime(200),
distinctUntilChanged(),
// switchMap allows returning an observable rather than maps array
switchMap((searchText) => {
if (!searchText || searchText.trim().length == 0) {
// when the user erases the searchText
this.dealerRepUserID = 0;
this.dealerRepChanging.emit(this.dealerRepUserID);
return EMPTY;
}
else if (this.dealerID == this.hostOrganizationID) {
// get a list of host reps
return this.myService.getHostRepsAutoComplete(searchText, this.includeInactive);
} else {
// get a list of dealer reps
return this.myService.getDealerReps(this.dealerID, searchText);
}
})
);
}
Функция должна возвращать Observable. Как мне поймать ошибку, возникающую внутри switchMap?
try-catch
для всего блока или вы можете перехватыватьerror
уведомления, испускаемыеthis.myService.get*
вызовами с операторомcatchError()
, в зависимости от того, что вы хотите сделать. Или вы также можете поставитьcatchError()
послеswitchMap
. - person martin   schedule 25.06.2020