Sockets 要无限期地观察随时间变化的阵列吗
我正试图使用Rxjs观测值来观察数组中的变化,但运气不好 进口: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
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)
);