Почему takeUntil для отписки Observable лучше размещать в конце pipe?
Думаю многие знают про способ отписки от подписки на Observable, с помощью создания поля типа Subject (например с имененем unsubscribe$) и в компоненте Angular в ngOnDestroy вызова методов next() и complete() у этого поля, а так же использования takeUntil(unsubscribe$) для отписки.
Собственно почему takeUntil(unsubscribe$) нужно использовать в конце списка операторов в pipe()?
Потому что завершенный обсервабл может быть переключен на другой, который не завершится.
По этой же причине и от хттп надо отписываться, одноразовый запрос может быть переключен на другой и за ним не уследишь.
Извините, я новичок в rxjs, не совсем понимаю как ваше первое предложение связано с тем, что takeUntil() нельзя ставить первым в последовательности операторов в pipe()
Несмотря на то, что при нажатии на кнопку срабатывает takeUntil и первый таймер завершен, подписка по прежнему действует и логирует приходящие значения, потому что второй таймер то не завершен и продолжает тикать.
А вообще я никогда не использую takeUntil для отписок, имхо это использование оператора не по назначению, проще напрямую отписаться или взять декоратор типа такого https://habr.com/ru/post/492424/