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

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

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

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

Если не сложно, хотелось бы увидеть еще живой пример как это сделано.
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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мс
означает "делать паузу"
Ответ написан
Ваш ответ на вопрос

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

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