Я слушаю сокет с Observable и подписываюсь на него в одном из моих компонентов.Если я не откажусь от его подписки в ngOnDestroy
, когда я снова зайду на этот компонент, он сработает N раз (N - это число раз, когда я переключаюсь обратно на этот компонент), но если я откажусь от подписки на ngOnDestroy
, тогда он будетслушайте первый раз, когда я иду к этому компоненту, и когда я иду к другому компоненту и возвращаюсь назад, он не сработает.
//in socket service
updateOrder() {
if (!this.socket.connected)
this.socket.connect();
let observable = new Observable < any > (observer => {
this.socket.on('test', (data) => {
observer.next(data); //going into here
});
return () => {
this.socket.disconnect();
};
})
return observable;
}
В конструкторе компонента прослушивания
this.orderSubscriber = this.socketService.updateOrder().subscribe(data => {
console.log('socket fired', data);
})
ngOnDestroy() {
this.orderSubscriber.unsubscribe();
}