我正在尝试使用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和使用异步管道,但都没有更新,它们仅在第一次工作然后停止。
如何使它实际上无限期地观察变化?
最佳答案
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)
);
关于sockets - 想要无限期观察随时间变化的阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078057/