Я занимаюсь разработкой системы отслеживания активности пользователей и пытаюсь достичь следующих целей:
- Поймать событие
mousemove
раз в две секунды пользователь начал двигать мышь. - Поймать моментчерез две секунды пользователь закончил движение мышью.
У меня есть следующие потоки:
const activityStream$ = Rx.Observable.fromEvent(document, 'mousemove');
const enterActivityStream$ = activityStream$.throttleTime(1000).skip(2);
const finishActivityStream$ = activityStream$.debounceTime(2000);
Отдельно они работают как положено, и я хотел бы объединить их, поэтому они будут работать в повторном режимеманера.
Например: пользователь начал перемещать мышь, через две секунды наблюдатель получает событие об этом (или, по крайней мере, оператор do
), затем пользователь заканчивает перемещение мыши, и наблюдатель также получает уведомление об этом.Если пользователь снова начал двигать мышь, эта процедура повторялась.
Я нашел там аналогичный вопрос Пример RxJS Наблюдаемый, когда активность мыши или щелчка перезапускается , но решение кажется сложным и не работает какпредназначена.(lastact$
поток запускается дважды, когда он должен срабатывать один раз).
Пожалуйста, кто-нибудь может дать мне подсказку о том, как мне этого добиться?Спасибо!