Ссылка на @injectable Сервис удерживает мой Компонент, хотя я устанавливаю ссылку на ноль после завершения использования Сервиса
constructor(
private router: Router,
private yakService: YakService,
private genericStateModel: GenericStateModel,
private stateManagerQuery: StateManagerQuery,
private stateManagerService: StateManagerService,
public authenticationService: AuthenticationService
) {
}
public loadHerd(dataset?: number) {
this.yakServiceSubscriptionLoadHerd = this.yakService.loadHerd(dataset).subscribe((data: YakItem[]) => {
this.herdCollection = this.genericStateModel.herdData = data;
const queryObject: QueryObject = _.cloneDeep(this.queryObject);
queryObject.days = 0;
queryObject.eventType = 'updateDays';
this.stateManagerService.update(queryObject, 'queryObject');
this.stateManagerService = null;
});
}
Сервис
@Injectable({ providedIn: 'root' })
export class StateManagerService {
constructor(private stateManagerStore: StateManagerStore, private http: HttpClient) {}
setActiveQueryObject(id: ID) {
this.stateManagerStore.setActive(id);
}
update(queryObject: QueryObject, activeID: ID) {
this.stateManagerStore.updateQueryObject(queryObject, activeID);
}
}
onDestroy
ngOnDestroy() {
console.log('HerdComponent::ngDestroy');
this.yakServiceSubscriptionLoadHerd.unsubscribe();
this.yakServiceSubscriptionGetStock.unsubscribe();
this.yakServiceSubscriptionGetHerd.unsubscribe();
this.stateManagerSubcsription.unsubscribe();
this.stateManagerService = null;
}
Когда я закомментирую this.stateManagerService.update(queryObject, 'queryObject');
эту строку, Компонент правильно собирается.
Как с этим справиться?