HttpClient是否可以从浏览器控制台中删除错误消息?
我当前的代码如下:
getStuff(stuffId: string): Observable<Stuff[]> {
return this.httpClient.get<Stuff[]>(this.stuff() + stuffId + '/stuff/').pipe(
catchError((err) => {
console.log(err.status);
if (err.status === 404) {
console.log('Not found');
}
})
);
}
执行if语句中的我的console.log('未找到'),但是它仍然向控制台抛出标准错误。
我的目标:控制台中没有红色:)
更新:
错误不是在Firefox中引发的,而是在Google Chrome中引发的。为什么..?
答案 0 :(得分:0)
对catchError
的回调必须返回一个Observable,因此您只需返回例如EMPTY
就可以完成并且什么都不发出的情况:
import { EMPTY } from 'rxjs';
...
catchError((err) => {
console.log(err.status);
if (err.status === 404) {
console.log('Not found');
}
return EMPTY;
});
答案 1 :(得分:0)
您在控制台中看到的标准错误实际上并非来自代码。由于API错误,它来自网络。浏览器考虑并理解标准的http响应代码。因此,只要任何http请求返回了2xx以外的任何响应代码,他们就会将其视为错误并在控制台中以红色显示。 很遗憾,您无法将其删除。这是由浏览器完成的。