.remove
удалить подписку из внутреннего списка, но она не отписаться.
.unsubscribe
очистить все, отписаться и удалить наблюдателя из внутреннего списка,(Была ошибка (исправлена), которая не удаляла наблюдателя из списка)
.takeWhile
сохранить подписку, поскольку определенная ситуация false
пример:
this.service.method()
.subscribe(res => {
//logic
});
это никогда не отменит подписку.
this.service.method()
takeWhile(() => this.isAlive) // <-- custom variable setted to true
.subscribe(res => {
//logic
});
ngOnDestroy(){
this.isAlive = false;
}
Автоматическая отмена подписки, когда компонент будет уничтожен.
this.s1 = someObservable.subscribe((value) => {
//somecode
});
public yourMethod(){
this.s1.unsubscribe();
}
эта подписка будет существовать и будет "живой"пока yourFunction
не вызывается.
-
Лично мне нравится использовать оператор rxjs takeWhile
, чтобы сохранить код в чистоте.В очень большом проекте или отдельном компоненте с несколькими подписками сбивает с толку наличие (IE) 30 variables: Subscription
.Поэтому, если вы спрашиваете, когда использовать оператор takeWhile
, я отвечу: (на примере одной подписки) -> Если вы уверены, что unsubscribe
необходимо выполнить, когда компонент уничтожен, используйте takeWhile.Если вам нужно отписаться в определенном сценарии, где компонент все еще «жив», используйте второй пример, который я написал.
Надеюсь помочь вам!