просто сохраните подписку в собственности и проверьте, существует ли она, не подписывайтесь, если нет, то подпишитесь
cacheSub: Subscription;
contactUs() {
if(!this.cacheSub) {
this.cacheSub = this.service.cacheSub.subscribe(....);
}
}
РЕДАКТИРОВАТЬ
, если хотитечтобы каждый раз подписываться и затем очищать каждую подписку, вы можете сделать
cacheSub: Subscription;
contactUs() {
this.cacheSub = this.service.cacheSub.subscribe(() => {
// some code here if you need it
this.cacheSub.unsubscribe();
});
}
или
contactUs() {
this.cacheSub && this.cacheSub.unsubscribe();
this.cacheSub = this.service.cacheSub.subscribe(() => {
// some code here if you need it
});
}