Angular 实现访问 Web 服务的状态线程



我是 Angular 的新手,在整个订阅/可观察量的事情上仍然不是 100%。

我有一个网络服务,当调用它将返回我的网站感兴趣的状态对象。Web 服务的设置方式,它将保持连接打开状态 30 秒,如果没有新内容要报告,将关闭连接,此时我应该重新提交状态请求,依此类推。这样,始终存在与 Web 服务的连接。

如何在角度中执行此操作?我需要制作一个服务,该服务将不断ping此Web服务以获取状态,但正常的HTTP客户端可观察性是一个并且可以观察到的。我什至不完全确定如何设置异步线程。

状态

终结点将返回一个状态对象,该对象可能包含要在屏幕上显示的新数据。

您可以使用

Observable.interval

class SomeService {
  public statusPing$: Observable;
  constructor(private http: HttpService) {
    this.statusPing = Observable.interval(30000)
      .switchMap(http.get('/api/ping/your_slug'))
  }
}

注意事项:

  1. 您需要导入interval运算符(我只列出了相关代码)。

  2. 您可能希望进一步映射响应 ( (respones) => response.json()

  3. 你必须使可观察的热,意思是,在你的代码中的某个地方做svc.statusPing$.subscribe()

最新更新