Как получить значение из другого потока по клику?
Есть событие клика:
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