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

Sockets 要无限期地观察随时间变化的阵列吗,sockets,angular,rxjs,observable,Sockets,Angular,Rxjs,Observable,我正试图使用Rxjs观测值来观察数组中的变化,但运气不好 进口: import {Observable} from 'rxjs/Observable'; import 'rxjs/add/observable/of'; 在我的主要服务中 我正在从socket.io服务器获取一个阵列,当用户连接或断开连接时,该阵列会发生变化。 每次更改后我都会设置数据 我知道当套接字发出时,userList正在更新,但由于某种原因,我不知道如何在我的组件中持续观察这种变化 主要服务: socket.on('ge

我正试图使用Rxjs观测值来观察数组中的变化,但运气不好

进口:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
在我的主要服务中

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

我知道当套接字发出时,userList正在更新,但由于某种原因,我不知道如何在我的组件中持续观察这种变化

主要服务:

socket.on('get users',(data)=>{
        this.userList= data;
      });
主服务中的函数-getUsers():

我试图订阅userList变量,并使用异步管道,但两者都不更新,它们只在第一次工作后停止。
如何使其真正无限期地观察更改?

MainService

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

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

这是可行的,只是我遇到了一个问题。它最初没有在我的组件中获取第一个数据包有什么原因吗?目前它只在新用户进来时更新,但没有获取第一个数据流。是的,出于某种原因,我正在尝试一切,它不会订阅,直到另一个用户进来。知道如何获得第一个订阅吗?只有在调用下一个时,才会发出AFAIK主题。-尝试使用行为主题
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)
);