пакет, который был подгружен через DI?
Если вкратце, то ситуация следующая: в app.component создается InjectionToken стороннего пакета, и я лениво подгружаю его в другой компонент:
constructor(@Inject(CANVASJS) private canvasJS: LazyCanvasJS) {}
И заметил, что при разрушении компонента этот пакет продолжает жить в фоновом режиме, что вызывает ошибки в консоли. Похоже на подписку, от которой забыл отписаться
@thekiba, привет из ProTON :D может знаешь как пофиксить? делал по твоему примеру отсюда - https://twitter.com/thekiba_io/status/1290917030414225408?s=20
с такой семантикой никак
У меня сейчас Твиттер не грузит, но понимаю о чем речь Ты можешь добавить зависимость в провайдеры компонента в виде сервиса, тогда при уничтожении компонента будет дергаться хук ngOnDestroy, в котором можно прописать удаление всех созданных ресурсов, это будет юзабельно Либо удалять ресурсы вручную в компоненте при вызове точно такого же хука, но тогда придётся всюду копировать код Либо сделать observable, который будет создавать ресурсы при подписке и уничтожать при отписке, это подойдёт если пишешь реактивный код Но я бы выбрал использование сервиса
Не знал, что сторонние пакеты можно через провайдера подключить, спасибо. А "удаление всех созданных ресурсов" - это какая-то универсальная функция? Типа .prototype.delete у какой-то сущности?
Не совсем Имеется ввиду, чтобы оповещать созданные объекты о том, что им надо уничтожиться Прямо как это реализовано в rxjs: subscribe/unsubscribe. Или как с таймерами: setTimeout/clearTimeout. И подобное. Возможно вот этот доклад будет полезен https://t.me/angular_fox/319
Обсуждают сегодня