我对角度很陌生,我想知道在这种情况下我缺少什么:
在一个服务中,我创建一个BehaviorSubject来存储 Websocket 事件:
@Injectable()
export class GlobalEvent {
private _events: BehaviorSubject<IWSEvent[]> = new BehaviorSubject([]);
private socket;
constructor() {
this.socket = io(AppConfig.websocketClient);
this.socket.on('event', (data: IWSEvent) => {
const collection = this._events.value;
collection.push(data.msg.object);
this._events.next(collection);
});
}
list() {
return this._events.asObservable();
}
}
然后在另一项服务中,我订阅了Observable我要返回的服务:
@Injectable()
export class InstanceStore {
constructor(private instanceService: InstanceService, private globalEvent: GlobalEvent) {
this.globalEvent.list()
.filter((e) => {
return e.model === 'Instance';
})
.subscribe(
(data: IWSEvent[]) => {
const event = data[data.length - 1];
console.log(event, data);
}
);
}
}
但是我得到了错误:Property 'model' does not exist on type 'IWSEvent[]'.在过滤器函数中,而我期望找到一个IWSEvent作为过滤器函数的参数,而不是数组。
我不明白什么?
谢谢