Angular HttpModule-处理状态代码!= 200,即隐藏浏览器的控制台错误消息

时间:2018-12-12 13:56:35

标签: angular angular-httpclient

如何在Angular前端正确处理请求?在我的node.js API中,如果找不到请求的资源,我总是发送状态404。但是发送此消息,导致错误消息出现在控制台中,如下图所示。

browse'rs console error

我该怎么做才能从浏览器的控制台中隐藏此消息?

我认为可能的解决方案是为所有请求发送状态200,但是带有自定义错误消息和所请求资源的空数组。有人可以在这里给我个提示吗?

糟糕:我目前正在处理类似这样的最终错误:

  

service.ts

  return this.http.get(url, options).pipe(
    catchError(this.handleError),
    map(response => {
      return response['data'] || [];
    })
  )

  private handleError(error: HttpErrorResponse) {
    // return an observable with a user-facing error message
    return throwError('Something bad happened; please try again later.');
  };

2 个答案:

答案 0 :(得分:0)

您需要捕获错误,然后可以对错误进行处理:

return this.http.get(url, options).pipe(
    catchError(this.handleError),
    map(response => {
      return response['data'] || [];
    })
    .catch((e: any) => console.log(e));
  )

答案 1 :(得分:0)

flatMap((error: HttpErrorResponse) => {
   if (error.status != 200) {
     return throwError(error)
   } else {
     return new Observable<void>(observer => observer.complete());
   }
})