mam shareService i zapisz się, że znajduje się w innej części:jak wypisać kilka abonenta w kątowym 2
import { Component, Input, OnDestroy } from '@angular/core';
import { MissionService } from './mission.service';
import { Subscription } from 'rxjs/Subscription';
@Component({
selector: 'my-astronaut',
template: `
<p>
{{astronaut}}: <strong>{{mission}}</strong>
<button
(click)="confirm()"
[disabled]="!announced || confirmed">
Confirm
</button>
</p>
`
})
export class AstronautComponent implements OnDestroy{
@Input() astronaut: string;
mission = "<no mission announced>";
confirmed = false;
announced = false;
subscription:Subscription;
constructor(private missionService: MissionService) {
this.subscription = missionService.missionAnnounced$.subscribe(
mission => {
this.mission = mission;
this.announced = true;
this.confirmed = false;
})
}
confirm() {
this.confirmed = true;
this.missionService.confirmMission(this.astronaut);
}
ngOnDestroy(){
// prevent memory leak when component destroyed
this.subscription.unsubscribe();
}
}
chcę wiedzieć czy mam 2 abonentów w moim constructor
, jak wypisać dwukrotnie abonentów w ngDestroy? Powinienem użyć subscription2:Subscription;
? I ngDestroy this.subscription2.unsubscribe();
? to prawda?
Tak, potrzebna jest inna zmienna 'subscriptionX', w której można przypisać drugą subskrypcję. A następnie wywołaj '.unsubscribe()' na każdym. –
tnx mój przyjaciel;) –
Możesz także użyć tablicy subskrypcji i użyć 'this.subscriptions.push (myService.subscribe (...)), a następnie wykonaj' this.subscriptions.forEach ((s) => s .unsubscribe()) ' –