Недавно я наткнулся на статьи, объясняющие наблюдаемые, и, поскольку я новичок в Angular, я пытался найти наилучший из возможных способов сделать все.
Я наткнулся на эту статью: https://blog.angularindepth.com/angular-question-rxjs-subscribe-vs-async-pipe-in-component-templates-c956c8c0c794, в которой рассматривается подписка и асинхронный канал.
Тем не менее, даже после изучения этой и других статей о том, подписываться или нет, мне все еще трудно получить определенный ответ.
Итак, я знаю, что ваша подписка на услугу может утечь, и согласно этой статье , если вы собираетесь использовать subscribe()
, тогда вам следует unsubscribe()
во время ngOnDestroy()
.
В противном случае это произойдет:
Подписка никогда не отписывается, поэтому, если Observable не завершится сам по себе, весь этот компонент, его шаблон и все связанные с ними объекты будут жить в памяти вечно.
Однако я также видел, как иногда люди говорят, что вам не нужно явно отказываться от подписки при вызове службы в компоненте, потому что Angular делает это для вас? Может быть, я запутываю себя, но все, что я хочу, это определенный ответ, поэтому я знаю, что реализовать при использовании subscribe()
, чтобы утечки памяти не были проблемой.
Так нужно ли явно unsubscribe()
из service
в моем component
? Объяснение поможет будущим людям, если это возможно. Спасибо!