可观察给出了多个值

可观察给出了多个值

问题描述:

我有一个观察的,它发送我的Socket数据可观察给出了多个值

getMessages() { 

let observable = new Observable(observer => { 


    this.sp.socket.on('new_msg_server', (data) => { 
    observer.next(data); 
    }); 

return observable; 
    }); 
} 

我订阅可观察像下面

​​

我期待的data是最新数据。但在记录日志时,我获得了以前的所有值data

这是可观察性的正常行为吗?它总是会返回整个可观察历史吗?

您正在以错误的方式创建可观测值。我试图解释为什么它的错误,但它出来很难理解,所以试试这样的事情吧:

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.. 
     }; 
    }); 
}