【问题标题】:How to handle console and network errors in Angular 2如何在 Angular 2 中处理控制台和网络错误
【发布时间】:2017-10-30 13:42:46
【问题描述】:

我使用 Angular 2 Observable 库从服务器获取一些数据。问题是我想处理所有服务器状态( 200,404,500 ),现在在控制台中显示错误。

return http.get( url, {headers})
      .map(res => res.json())
      .subscribe((res: any) => {
          console.log(res);
      }, (error: any) => {
         console.log(error);
         console.log('error finding variety list');
      });

【问题讨论】:

    标签: javascript angular rxjs observable


    【解决方案1】:

    要获取您的响应状态,您可以这样做:

    return http.get( url, {headers})
    .map(res => {
        // use res.status, here case if status is unauthorized
        if(res.status === 401) {
          throw new Error('Error unauthorized');
        }
        // case with no error
        else {
          return res.json();
        }
     })
    .subscribe((res: any) =>
     {
         console.log(res);
     }, (error: any) => {
         console.log(error);
         console.log('error finding variety list');
     });
    

    【讨论】:

    • 问题是我可以处理这些错误。但我不想在控制台中显示它。因为通过这种方式我可以处理它,但我也会在控制台中收到错误行。
    • 你不需要有 console.log(error);所以如果这是问题,只需删除这部分。如果问题是它仍然在控制台中打印,我认为您应该查看这篇文章:stackoverflow.com/questions/24207143/…
    • 是的。问题是它无论如何都会在控制台中打印。我想控制我的代码并且不显示错误
    • 打印错误的不是您的 Angular 应用程序,而是浏览器。因此,您可以做的是从服务器端发送 status=200 的响应,并在响应正文中创建您自己的错误。然后根据body处理响应
    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2017-07-25
    • 1970-01-01
    • 2016-06-29
    • 2019-07-06
    • 1970-01-01
    相关资源
    最近更新 更多