Одновременное нажатие левой и правой кнопок мыши с помощью RxJS - PullRequest
1 голос
/ 12 марта 2019

Мне нужно поймать событие, одновременно нажимая левую и правую кнопки мыши с помощью RxJS .Точнее, вам нужно перехватить событие mouseup правой и левой кнопками мыши с максимальной разницей в 300 мс.

Ответы [ 2 ]

2 голосов
/ 12 марта 2019
  1. Создайте два потока, один для левого и один для правого щелчка
  2. отобразите оба из них Date.now()
  3. Затем вы хотите combineLatest два потока
  4. Наконец filter значения, которые находятся на расстоянии более 300 мс
0 голосов
/ 12 марта 2019

По совету Том Камминг

import { fromEvent, combineLatest } from 'rxjs'
import { filter, map } from 'rxjs/operators'
const upLeft$ = fromEvent(document, 'mouseup').pipe(filter((e) => e.which === 1), map(()=>Date.now()))
const upRight$ = fromEvent(document, 'mouseup').pipe(filter((e) => e.which === 3), map(()=>Date.now()))

const combined$ = combineLatest(upLeft$ , upRight$).pipe(filter((e)=> (e[1]-e[0])<=300 && (e[1]-e[0])>0), map((e)=> (e[1]-e[0])));

combined$.subscribe(() => {
console.log("It work!!!")
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...