我有一个observable,它向我发送Socket Data
getMessages() {
let observable = new Observable(observer => {
this.sp.socket.on('new_msg_server', (data) => {
observer.next(data);
});
return observable;
});
}
我正在订阅下面的观察
getMessages().subscribe(data=>{
console.log(data);
})
我期待data
成为最新数据。但是,在记录data
这是可观察的正常行为吗?它总能回归整个可观察的历史吗?
答案 0 :(得分:0)
你正以错误的方式创造你的观察力。我试图解释为什么它的错误,但它很难理解,所以只是尝试这样的事情:
getMessages() {
return Observable.create(observer => {
this.sp.socket.on('new_msg_server', (data) => {
observer.next(data);
});
// You should do some error handling here, not sure what kind of socket you are using, but something like this
this.socket.on('error', (error) => {
observer.error(error);
});
return () => {
// Close connection and clean up here
this.sp.socket.close(); // or what works for you..
};
});
}