1
私はRxJにはかなり新しく、これに対する解決策を読んでいません。もっと詳しい説明はコメントにありますが、基本的には特定のキーが押されたときにキーの組み合わせを処理したいと思います( "o"を押すと他のキーが押されるのを待つ)そうでない場合はキー入力を直ちに処理します( "o"が押されていない場合は "o"、 "o"の場合は "timeout"が経過しています)。RxJsのイベントに基づいてキー入力を条件付きでバッファリングする方法
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)
おかげ
は私にしばらくけど参照しました小さなステートマシンでロジックを実装する私の答え – user3743222