Почему вызывается внутренний обсервер?

Есть такой стрим клика:

this.createReestrClick
            .pipe(
                switchMap(() => this.documentsRepository.selectedDocumentsFilesIds$),
                tap((ids) => console.log(ids)),
            )
            .subscribe();


В свою очередь
this.documentsRepository.selectedDocumentsFilesIds$
тоже вещает стрим.

Почему даже несмотря на то - что клик по кнопке не происходит - внутренний стрим
switchMap(() => this.documentsRepository.selectedDocumentsFilesIds$),
эмиттит значения?

Как достичь того, чтобы стрим работал только по клику - как это сейчас:
public createReestr() {
        this.createReestrClick.next();
    }
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Junart1 Автор вопроса
Сработало благодаря take(1):

this.createReestrClick
            .pipe(mergeMap(() => this.documentsRepository.selectedDocumentsFilesIds$.pipe(take(1))))
            .subscribe((r) => {
                console.log(r);
            });


Хотя до конца не понимаю из-зачего так работало
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 100 000 до 200 000 ₽
Orderz.pro Москва
от 100 000 до 200 000 ₽
Applicatura Санкт-Петербург
от 150 000 до 200 000 ₽