Это кажется довольно странным для меня. Вы создаете новую подписку для каждого ребенка каждый раз, когда приходит parentResult
. Даже если те в конечном итоге действительно будут уничтожены (при условии, что реализация onDestroy$
верна), это кажется неправильным.
Вы, вероятно, хотите withLatestFrom(parent$)
и три отдельных канала для каждого дочернего элемента.
Это может выглядетьчто-то вроде: child1$.pipe(takeUntil(globalDeath$), withLatestFrom(parent$)).subscribe(([childResult, parentResult]) => ...)
. Не уверен, что мой JS правильный, не могу проверить его в данный момент;но дело в том, что вы получаете последний результат от parent$
каждый раз, когда child1$
срабатывает. Обратите внимание, что при необходимости вы можете изменить направление (withLatestFrom(child1$)
).