оборачиваю промис, мне не надо отписку добавлять?
from(new Promise(resolve => resolve('Hello World!'))).pipe(take(1)).subscribe()
Если вы хотите использовать Promise, то вместо оператора from нужно использовать оператор defer. Если использовать from, то Promise создастся сразу и закэшируется. Если использовать defer, то Promise будет создаваться только при подписке. И отписываться нужно всегда, когда подписка больше не нужна.
а как takeUntil сюда прикрутить
Перед .subscribe поставить .pipe(takeUntil...
а что в аргумент takeUnit передать, вот в чем вопрос
мне можно уже отписываться когда промис зарезолвился или зареджектился. не пойму что в таком случае takeUntil в аргумент закинуть
обычно передают subject, который отписывается при дестрое
Создать subject и takeUntil(() => this.subject)
ну это если компонент
если он резолвится, то поток будет и так комплититься, а отписка нужна на случай дестроя
а в сервисах не должно быть подписок
Если память не изменяет в сервисах тоже OnDestroy есть
Не встречал такого, ссылки на документацию есть?
есть, но это не отменяет того, что в сервисах не должно быть подписок
сюдя по доке, да
а при reject тоже закомплитится?
да суть в том, что отписка должна быть на случай того, что промис не зарезолвится, или сделает это позже удаления компонена.
Обсуждают сегодня