Как получить значение из другого потока по клику?

Есть событие клика:

  const click$ = fromEvent(this.image.nativeElement, 'click');

И событие включения кнопки:

const btnClick$ = fromEvent(this.button.nativeElement, 'click');

Как по клику click$ - получать значение из btnClick$ и click$?

Пробовал так - срабатывает один раз немотря на то что продолжаю делать клик:

click$
  .pipe(switchMap(() => btnClick$))
  .subscribe(r => console.log('Saved!', r));

Ответы (1 шт):

Автор решения: Kostiantyn Okhotnyk

Реализация:

...
 ngOnInit() {
      this.click$ = fromEvent(this.image.nativeElement, 'click');
      this.btnClick$ = fromEvent(this.button.nativeElement, 'click');


     this.click$
     .pipe(
        scan(currentState => !currentState, false),
        switchMap(res => res ? this.btnClick$ : empty())
       )
      .subscribe(r => console.log(r));
   }

Логика работы: задаем начальное состояние картинки scan(currentState => !currentState, false),
далее отрабатывает переключение состояни scan(currentState => !currentState, false).
При currentState = true отслеживаем кнопку, при состоянии false выполняем empty

→ Ссылка