Удаляет ли заметное также подписки на него? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть массив групп угловых форм.В другом месте в приложении некоторые подписки настраиваются на изменения проверки формы управления.В какой-то момент жизненного цикла я удаляю группу форм.Нужно ли беспокоиться о том, что подписки все еще открыты для объектов, которые больше не находятся в памяти?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

NO

Если вы вызываете .subscribe где-нибудь в вашем коде, единственный способ не допустить утечки памяти - это убедиться, что эти подписки снова отписались.

Вам необходимо либо вручную отписаться от каждойодин или убедитесь, что все наблюдаемые, на которые вы подписаны, конечны, то есть где-то есть сигнал «конца».Они могут быть либо ограниченной последовательностью (.first (), .take () и т. Д.), Либо их можно отключить, оканчивая на .takeWhile () или .takeUntil ()

Подпискам все равноесли вы покидаете область действия, удаляете объект ссылки или даже удаляете его.Вы должны убедиться, что они отписались.

Смотрите мой ответ здесь: RXJS - Angular - отписаться от субъектов

0 голосов
/ 25 мая 2018

Нужно ли беспокоиться о том, что подписки по-прежнему открыты для объектов, которые больше не находятся в памяти?

Пока подписка / наблюдаемое открыта и переменная будет работатьбыть в памяти, даже если ваш родительский элемент больше не доступен.Это приводит к утечке памяти.

Золотое правило: Вы всегда должны отписываться от наблюдаемых.

Существуют определенные исключения / крайние случаи для этого правила, например, запросы Http автоматически отписываются после завершения, таким образом теоретическине нужно отписываться.

редактировать: я нашел статью, которая объясняет это более подробно Angular / RxJs Когда мне следует отписаться от `Subscription`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...