3

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('Not found') 被执行,但它仍然向控制台抛出标准错误。

我的目标:控制台中没有红色:)


更新:

这些错误不是在 Firefox 中引发的,而是在 Google Chrome 中引发的。为什么..?

4

2 回答 2

3

您在控制台中看到的标准错误实际上不是来自代码。由于 API 错误,它来自网络。浏览器考虑并理解标准的 http 响应代码。因此,只要任何 http 请求返回 2xx 以外的任何响应代码,他们就会认为这是一个错误,并在控制台中以红色显示。不幸的是,您无法删除它。这是由浏览器完成的。

于 2019-04-23T11:45:03.157 回答
1

回调catchError必须返回一个 Observable,这样你就可以返回例如EMPTY刚刚完成并且什么也不发出的例子:

import { EMPTY } from 'rxjs';

...

catchError((err) => {
  console.log(err.status);
  if (err.status === 404) {
    console.log('Not found');
  }
  return EMPTY;
});
于 2019-04-23T11:22:43.057 回答