Задать вопрос
etozhetisachniy
@etozhetisachniy

Как изменять значение стрима после метода subscribe?

У меня возникло не обычное задание.
Есть таймер, нужно добавить кнопку, которая будет его останавливать на 300мс.
И все это нужно реализовать используя rxJS.

Не могу понять, как мне менять значение подписки после клика кнопки, наверное уже все обгуглил, все равно не могу найти нииичеегггоооо.

Если не сложно, хотелось бы увидеть еще живой пример как это сделано.
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Комментировать
Xuxicheta
@Xuxicheta
инженер
import { fromEvent, EMPTY, interval, merge, timer } from  'rxjs';
import  { scan, startWith, switchMap, mapTo, delay } from  'rxjs/operators';

const DELAY=1000;
const button = document.createElement('button');
button.textContent = 'Click me';
document.documentElement.appendChild(button);


const click$ = fromEvent(button, 'click').pipe(
  mapTo(false),
)
const unclick$ = click$.pipe(
  delay(DELAY),
  mapTo(true),
)

merge(click$, unclick$).pipe(
  startWith(true),
  switchMap(event => event ? timer(0, 1000) : EMPTY),
  scan(acc => acc + 1, 0),
)


это если я правильно понял
станавливатьна 300мс
означает "делать паузу"
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы