Angular 2"实时更新"对象.

Pau*_*awk 4 httprequest observable socket.io angular

嗨,我正在尝试如何更新表角度2.

这就是我所拥有的:后端:express/MongoDB.更新通过外部应用程序提供给数据库:90%的数据将是静态的.每秒有10%的数据更新.

我看过Observables/promises.HTTP请求/套接字IO,但无法围绕这些概念.

主要问题:我可以使用带有socket.io的observable来更新记录吗?

有关数据更新的其他问题

  1. Angular 2的Observables - 只有在客户端提取数据时才能使用Observables吗?或者,当数据被推送到客户端时,您可以将它与套接字一起使用.(所有在线示例都使用带有http请求的observable)
  2. 您可以使用Socket IO更新对象,还是仅用于新对象?每个例子都看是一个聊天应用程序.
  3. 使用http请求时,如何设置请求数据的频率?(一些例子在线使用循环,但这似乎是错误的.)

Thi*_*ier 5

  1. Observable是基于事件的,因此它们可用于从服务器利用Web套接字接收事件.看看这篇文章("基于事件的支持"一节):

  2. 实际上它是新对象,但您可以利用scan运算符来聚合多个事件的内容.

    var obs = (...)
    obs.startWith([])
       .scan((acc,value) => acc.concat(value))
       .subscribe((data) => {
         console.log(data);
       });
    
    Run Code Online (Sandbox Code Playgroud)

    有关详细信息,请参阅此问题:

  3. 如果您想以时间间隔拉动,可以使用以下interval方法:

    Observable.interval(3000).flatMap(() => {
      return this.http.get('/some-request').map(res => res.json());
    }).subscribe((data) => {
      console.log(data);
    });
    
    Run Code Online (Sandbox Code Playgroud)