从浏览器控制台中删除错误消息(Angular HttpClient)

时间:2019-04-23 11:18:28

标签: angular error-handling rxjs angular-httpclient angular-errorhandler

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中引发的。为什么..?

2 个答案:

答案 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以外的任何响应代码,他们就会将其视为错误并在控制台中以红色显示。 很遗憾,您无法将其删除。这是由浏览器完成的。