2017-07-02 55 views
-1

我在组件(Angular2)的ngOnInit()中订阅,然后在ngOnDestroy()中取消订阅。我的组件的第二初始化后,它给我一个错误:为什么我不能在取消订阅后在同一个EventEmitter上订阅

ObjectUnsubscribedError: object unsubscribed 

在我的课,我有:

ngOnInit() { 
    this.chatService.getConversationsEvent() 
    .subscribe((data:Data<Array<Conversation>>) => { 
     console.log('from correspondence'); 
    }); 
    this.scrollToBottom(); 
} 

ngOnDestroy() { 
    this.chatService.getConversationsEvent().unsubscribe(); 
} 
+1

这里添加一些代码 – Sreemat

+0

添加的代码有点 –

回答

1

试试这个代码。

chatObservable:any;  
ngOnInit() { 
     this.chatObservable=this.chatService.getConversationsEvent() 
     .subscribe((data:Data<Array<Conversation>>) => { 
      console.log('from correspondence'); 
     }); 
     this.scrollToBottom(); 
    } 

    ngOnDestroy() { 
     if(!chatObservable.closed()){ 
     this.chatObservable.unsubscribe(); 
     } 
    } 
+0

似乎是工作,我要检查它carefuly,如果它的作品,我会率你。而且在ngOnDestroy中,你会错过this.chatObservable。我只是新来的,不知道如何编辑它。 –

+0

谢谢你,你是最棒的。主要观点是新变量chatObservable并从该变量你必须退订! –

+0

Cool @ЮраАрабчук – Sreemat