Я новичок в RxJs и не читал решения этой проблемы. Более подробное объяснение находится в комментариях, но в основном я хочу обработать комбинацию клавиш (я думаю, что буфер сделает это) при нажатии определенной клавиши (например, нажатие «o» будет ждать короткое время для нажатия других клавиш) , но в противном случае немедленно обработайте ввод клавиши (что-либо, кроме «o», если «o» не была нажата или истек «тайм-аут» для «o»).
Observable.fromEvent(document, 'keydown')
// Now I want to only continue processing the event if the user pressed "o99" in series,
// as in pressed "o", followed by "9" and then another "9"
// I think I can do it with buffer
.buffer(() => Observable.timer(1000))
.map((e) => 'option-99')
// However I need to pass the keys through unbuffered if it's anything but an "o" (unless it is following an "o")
// In other words, "o99" is buffered or something, but "9" is not, and processed immediately
.map((e) => e.keyCode)
Спасибо