如何在Angular 2+中查找网络断开错误

时间:2018-07-03 10:57:33

标签: error-handling angular2-routing

我尝试查找网络断开的问题。我尝试了多种方法。仍然我没有得到解决方案。我用状态码无法实现。

这是我的示例代码:

    var headers = new Headers();
    headers.append('Content-Type', 'application/json');
    headers.append('Authorization', 'Bearer ' + this.token); 

    this.http.get('http://someurl/'+userId,{headers:headers})

    .map(res => res.json())

    .subscribe(
      data => {
      console.log(data);
     },

    error => {
      console.log(error);
      if(error.status == 500) {
        this.dashResponse = false;
        this.notFoundResponse = false;
        this.serverErrorResponse = true;
      }
      else if(error.status == 404)
      {
        this.dashResponse = false;
        this.notFoundResponse = true;
        this.serverErrorResponse = false;
      }
      else if(error.status == 401)
      {
        this.router.navigate(['/login']);
        alert('Un Authorized');
        this.refresh();
      }
      else
      {
        this.dashResponse = false;
        this.notFoundResponse = false;
        this.serverErrorResponse = true;
      }
    }

     );

任何人都可以解决我的问题吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

我找到了我的问题的解决方案。

这是解决方案:

  1. 导入HostListener

     import { Component, OnInit, HostListener,OnDestroy } from '@angular/core';
    
  2. 将此代码放入您的AppComponent

     export class AppComponent implements OnInit,OnDestroy  {
    
     //Offline Event
     @HostListener('window:offline', ['$event'])
     OfflineEvent(event: Event) { 
    
      console.log(event);
       //do something.....
     }
    
     //Online event
     @HostListener('window:online', ['$event'])
     OnlineEvent(event: Event) {
    
       console.log(event);
       //do something.....
    
       }
    
      }
    

您可以使用HostListener显示任何想要显示的内容。