etozhetisachniy
@etozhetisachniy

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

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

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

Если не сложно, хотелось бы увидеть еще живой пример как это сделано.
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 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мс
означает "делать паузу"
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект