Существуют конечные и бесконечные Наблюдаемые, как лучше всего описано в этой статье .
Конечные Наблюдаемые
завершаются в определенный обозримый период времени, например, сетевой запрос илиВаш Observable.of()
звонок.
Бесконечные наблюдаемые
могут никогда не завершиться, например, Наблюдение за событиями щелчка.
Ответ
Хотя нет реальной необходимости отписываться от конечных Observables, рекомендуется отписываться от всех наблюдаемых, поскольку вы обычно не знаете, если это так.действительно конечно.
Чтобы не накапливать несколько подписок в вашем коде, лучше всего использовать расширенные функции rxjs, как показано в этой статье .
Почему я должен отписаться от рассылки Observable ?
Observable - это поток событий.Вы можете подписаться на этот поток и получать обновления, так как поток генерирует события с помощью функции subscribe
.subscribe(
onNext => {
// Called if there was a normal event, e.g. data is emitted
},
onError => {
// Called if there was an Error
},
onComplete => {
// Called if the event stream ends OR an Error is encountered
}
)
Каждая подписка занимает место в памяти и до тех пор, пока Observable не завершит, подписки не будутзавершить (но все равно будет получать обновления с функцией onNext()
, даже если, например, в angular компонент уничтожается).Чтобы предотвратить непредвиденное поведение и утечки памяти, вы должны отписаться. Нажмите, чтобы прочитать