如何使用mergeMap Angular处理Typeahead搜索中的错误场景



尝试使用API数据进行预编搜索功能,如果我们给出有效数据,则自动提示正确,如果我们提供无效数据,则会给出错误消息,但如果我们再次输入有效数据,API不会触发。所以我尝试修复并尝试了下面的代码,并帮助我如何处理无效数据的错误场景。

asyncData: string;
dataSource: Observable<any>;
this.dataSource = new Observable((observer) => {
observer.next(this.asyncData)
}).mergeMap(() => {
return this.http.get('/api/testAPI',{params: {param1: param1}});
});

new Observable()似乎没有必要。没有显示HTTP请求的使用情况。无论如何,您需要的是某种形式的错误处理。您可以使用catchError运算符将错误转换为有效响应或不发出错误。

import { NEVER } from 'rxjs';
import { catchError } from 'rxjs/operators';
return this.http.get('/api/testAPI',{params: {param1: param1}}).pipe(
catchError(() => NEVER)
);

这将使用不会发射的RxJSNEVER常量。如果您希望处理订阅中的错误,请小心。这不会发射。

最新更新