следуя этому примеру, ответ - нет.Вы бы использовали один и тот же сигнал отказа от подписки для всех наблюдаемых, как это:
export class ProjDetailsComponent implements OnInit {
private unsubscribe = new Subject();
constructor(public _projDetailsService: ProjDetailsService
) {
}
ngOnInit() {
this.LoadApprovalManager();
this.LoadActiveProjectSubmissions();
}
public LoadApprovalManager() {
this._projDetailsService.GetDefaultMgrGeidData()
.pipe(takeUntil(this.unsubscribe))
.subscribe(result => {
}, error => {
//this.ErrorMessage('Unable to load search data ' + error.toString());
//this.SelectedApproverManager = '';
});
}
LoadActiveProjectSubmissions() {
this._projDetailsService.GetActiveProjectSubmissions()
.pipe(takeUntil(this.unsubscribe))
.subscribe(x => {
//processing
}, error => {
// this.ErrorMessage(error.toString());
});
}
ngOnDestroy() {
this.unsubscribe.next();
this.unsubscribe.complete();
}
}
Однако, при всем уважении к людям на этом сайте, я думаю, что этот метод не имеет никакого смысла и повышает код котельной до абсурдных уровнейкогда вы могли бы просто сделать это:
export class ProjDetailsComponent implements OnInit {
private subs: Subscription[] = [];
constructor(public _projDetailsService: ProjDetailsService
) {
}
ngOnInit() {
this.LoadApprovalManager();
this.LoadActiveProjectSubmissions();
}
public LoadApprovalManager() {
this.subs.push(this._projDetailsService.GetDefaultMgrGeidData()
.subscribe(result => {
}, error => {
//this.ErrorMessage('Unable to load search data ' + error.toString());
//this.SelectedApproverManager = '';
}));
}
LoadActiveProjectSubmissions() {
this.subs.push(this._projDetailsService.GetActiveProjectSubmissions()
.subscribe(x => {
//processing
}, error => {
// this.ErrorMessage(error.toString());
}));
}
ngOnDestroy() {
this.subs.forEach(s => s.unsubscribe());
}
}
простой унифицированный подход к управлению подписками, который не загрязняет ваши наблюдаемые дополнительными шагами в конвейере.