У меня есть сомнения относительно того, где я должен отписаться от Observable.
У меня есть следующая функция в компоненте:
loadProjectDetails(projectId: number): void {
console.log('>> loadProjectDetails(), id=', projectId);
const subscription = this.projectService.getProjectById(projectId).subscribe(
data => {
this.component = ProjectComponent;
this.injector = Injector.create([{provide: Project, useValue: data}], this.inj);
this.localStorageService.setLastSelection(projectId, null, null);
subscription.unsubscribe();
}, error => {
if (error.status === 400) {
alert("There is no project with id=" + projectId);
} else {
throw error;
}
subscription.unsubscribe();
}
);
}
Имеет ли смысл отписаться в представленном способеили достаточно отменить подписку в методе ngOnDestroy () ?
Метод loadProjectDetails (projectId: number) вызывается каждый раз, когда пользователь нажимает кнопку, поэтому он запускаетсянесколько раз, прежде чем компонент будет уничтожен.