Вы получаете вывод, который у вас есть, потому что он проходит и запускает побочный эффект tap
для каждой подписки.
Чтобы получить результат, который вы ожидали, вам нужно будет добавить shareReplay
const parent$ = interval(2000).pipe(
map(x => 'parent' + x),
tap(_ => console.log('click$')),
shareReplay(1)
);
Таким образом, каждый подписчик на parent$
наблюдаемой «делится» излучением от parent$
наблюдаемой.Нажмите только один раз, затем.
Вы можете увидеть его в стеке блиц здесь:
https://stackblitz.com/edit/rxjs-rvymjx