我正在尝试使用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,并使用异步管道,但两者都没有更新,它们只在第一次工作然后停止。 如何让它实际上无限期地观察变化?
答案 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)
);