Angular 5-失去连接并重新订阅

时间:2018-08-02 06:49:25

标签: angular rxjs connection angular5 angular-services

我有这项服务,每5秒向我的服务器询问一次数据,它工作正常。 但是,如果连接断开,我应该告诉我的组件在重新建立连接之前没有互联网连接。这就是我的问题所在,似乎在我的回复中,即使我没有任何互联网连接,我也可以取消上一个请求并启动下一个请求。

在尝试重新连接并获取数据的活动期间,如何告诉组件连接丢失?

getOdometerData(id: any) {
const interval = 5000;
const source = Observable.timer(0, interval);
const url = `${this.api + '/' + id}`;
var getdata = this.http.get(url)
}).timeout(interval).retryWhen(errors => errors.delay(interval));
return source.switchMap(result => getdata).publishReplay(1).refCount();

}

1 个答案:

答案 0 :(得分:0)

您可以使用navigator来检查Internet连接:

example

尝试这样的事情:

  checkOnline() {
    if (navigator.onLine) {
      this.data = true
    } else {
      this.data = false
      alert("There is no connection")
    }
  }

然后做任何想做的事。