У меня есть 2 потока, от событий клавиатуры (K) и от событий мыши (M).
События клавиатуры должны генерироваться, когда предыдущее событие было нулевым или событие мыши.
События мыши должны создаваться, когда предыдущее событие было событием клавиатуры.
Таким образом, отправляя M-K-M-K-K-M-K-K, следует 3 раза вызвать обработчик клавиатуры и 2 раза обработчик мыши.
Следующая подписка позволяет потоку клавиатуры генерировать несколько событий клавиатуры, а это не то, что мне нужно.
keyboardStream(document)
.do(keyboardHandler)
.switchMap(() => mouseStream(document).take(1))
.subscribe(mouseHandler)