想要无限期地观察随时间变化的阵列

时间:2017-02-06 22:01:50

标签: sockets angular rxjs observable

我正在尝试使用Rxjs Observables在没有运气的情况下观察阵列中的变化。

进口:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';

我在Angular 2的主要服务

我从socket.io服务器获取一个数组,该数组在用户连接或断开连接时发生变化。 我在每次更改后设置数据。

我知道当套接字发出时,userList正在更新,但出于某种原因,我无法弄清楚如何在我的组件中持续观察这一变化。

主要服务:

socket.on('get users',(data)=>{
        this.userList= data;
      });

主要服务中的功能 - getUsers():

  getUsers(){
        return Observable.of(this.userList);
      }

我试图同时订阅userList var,并使用异步管道,但两者都没有更新,它们只在第一次工作然后停止。 如何让它实际上无限期地观察变化?

1 个答案:

答案 0 :(得分:2)

<强> MainService

userList: Subject = new Subject<any>();
userList$ = this.userList.asObservable();

socket.on('get users', (data: any) => {
   this.userList.next(data);
});

在组件中

this.mainService.userList$
.subscribe( 
   (data:any) => console.log(data)
);