Rxjs 阅读「;“按下键”;按空格分隔的输入

Rxjs 阅读「;“按下键”;按空格分隔的输入,rxjs,Rxjs,我想通过加入用户输入的键来显示标记(单词),直到她点击空格或回车。这在JS中似乎很平常,但在rxJs中,我尝试了很多方法,结果被卡住了 请从这个开始: const source = Rx.Observable.fromEvent(someDiv, 'keydown') //.YOUR_SOL .subscribe(w=>{console.log(w)}) 例如: 'a','b','c',空格,'a','b'=>“abc”,“ab” 非常感谢 试试这个: const keyDown$ =

我想通过加入用户输入的键来显示标记(单词),直到她点击空格或回车。这在JS中似乎很平常,但在rxJs中,我尝试了很多方法,结果被卡住了

请从这个开始:

const source = Rx.Observable.fromEvent(someDiv, 'keydown')
//.YOUR_SOL
.subscribe(w=>{console.log(w)})
例如: 'a','b','c',空格,'a','b'=>“abc”,“ab”

非常感谢

试试这个:

const keyDown$ = Rx.Observable.fromEvent(document, 'keydown').pluck('key');

const isSpaceOrEnter = x => [' ', 'Enter'].includes(x);

const spaceOrEnter$ = keyDown$.filter(isSpaceOrEnter);

keyDown$
  .filter(x => !isSpaceOrEnter(x))
  .buffer(spaceOrEnter$)  
  .map(x => x.join(""))
  .subscribe(x => console.log(x));

您可以在这里进行测试:

您能给出一个输入和预期行为的示例吗?如果用户点击'a','b','c',空格'a','b'预期输出是什么?'a','b','c',空格'a','b'=>abc,abPerfect!谢谢现在如果我需要对按下的每个键做出反应。在.filter(x=>!isSpaceOrEnter(x))之后,我的当前字符不是空格或enter。