Спасибо! Сейчас подумал и понял, что я чаще всего пользуюсь combineLatest и switchMap. В последнее время еще forkJoin. А вообще я рекомендую в свободное время просматривать список операторов на https://rxjs.dev/ и таким образом расширять свой кругозор. Именно так я нашел sample и ignoreElements, а уже потом использовал их на проекте.
Кстати отписка и нюансы использования share в контексте Ангулара тянут на отдельную статью ( это как минимум ). Нет ли у вас желания написать ее? По моему отличная тема для дебюта на Хабре. Комментарии сложно найти и они не включают все кейсы, а вот отдельная статья со всеми нюансами была бы очень полезна сообществу. Что скажите?
По ссылке есть вся необходимая информация, в частности про shareReplay - если вы нажмете "Further reading" и перейдете на статью с объяснением. Внизу есть раздел An update.
Во-первых, takeUntil должен быть всегда последним.
Это не так, takeUntil ставится перед shareReplay и некоторыми другими операторами. Пруф.
Во-вторых, этот оператор надо добавлять только непосредственно перед подпиской, в пайпе обсервабла он не нужен
Я его поставил перед shareReplay по причине выше. К тому же в статье приводятся отдельные куски кода исключительно для примера. В этом случае вообще нет подписки, она за скобками.
Спасибо за комментарий. В контексте статьи я хотел показать что после получения первого значения нужно завершать стрим чтобы не тратить ресурсы на его обработку ( конечно если это подходит по логике ). Но в общем случае вы правы - нужно отписываться. Сделал поправку, добавил takeUntil(this.onDestroy$) в пример с take(1).
Вы правы, тут я был неосторожен. На проекте мы часто используем стримы выдающие 1 значение, но конечно упоминание "холодности" было некорректно. Убрал это примечание, оно там вообще не нужно.
Спасибо! Сейчас подумал и понял, что я чаще всего пользуюсь combineLatest и switchMap. В последнее время еще forkJoin. А вообще я рекомендую в свободное время просматривать список операторов на https://rxjs.dev/ и таким образом расширять свой кругозор. Именно так я нашел sample и ignoreElements, а уже потом использовал их на проекте.
На здоровье)
[удалено, не та ветка]
Кстати отписка и нюансы использования share в контексте Ангулара тянут на отдельную статью ( это как минимум ). Нет ли у вас желания написать ее? По моему отличная тема для дебюта на Хабре. Комментарии сложно найти и они не включают все кейсы, а вот отдельная статья со всеми нюансами была бы очень полезна сообществу. Что скажите?
Тут уже вопрос вкусов и конкретной ситуации, я посчитал этот вариант безопасным и вполне корректным для своего примера.
По ссылке есть вся необходимая информация, в частности про shareReplay - если вы нажмете "Further reading" и перейдете на статью с объяснением. Внизу есть раздел An update.
Это не так, takeUntil ставится перед shareReplay и некоторыми другими операторами. Пруф.
Я его поставил перед shareReplay по причине выше. К тому же в статье приводятся отдельные куски кода исключительно для примера. В этом случае вообще нет подписки, она за скобками.
Спасибо за комментарий. В контексте статьи я хотел показать что после получения первого значения нужно завершать стрим чтобы не тратить ресурсы на его обработку ( конечно если это подходит по логике ). Но в общем случае вы правы - нужно отписываться. Сделал поправку, добавил takeUntil(this.onDestroy$) в пример с take(1).
Согласен, заменил
Вы правы, тут я был неосторожен. На проекте мы часто используем стримы выдающие 1 значение, но конечно упоминание "холодности" было некорректно. Убрал это примечание, оно там вообще не нужно.
Так и делаем) В статье есть пример про явное указание типа формы.
Хорошее дополнение про тип-обертку для случая если модель совпадает с полями формы.
Привет! На здоровье)