Javascript CodeMirror:onChanges-如何检测更改是什么?

Javascript CodeMirror:onChanges-如何检测更改是什么?,javascript,rxjs,codemirror,Javascript,Rxjs,Codemirror,我有一个允许用户输入代码镜像文本框的应用程序。 我已使用连接到服务器,并在事件更改时向上推文本框的全文 问题在于,每次用户键入信函时,更改都会被推送到服务器上。 我用if语句过滤掉了空格和新行更改,如下所示: editorChanges(doc, changes: any[]) { if (changes[0].text.some(str => str)) { this.signalrHub.push(this.editor.value())

我有一个允许用户输入代码镜像文本框的应用程序。
我已使用连接到服务器,并在事件更改时向上推文本框的全文

问题在于,每次用户键入信函时,更改都会被推送到服务器上。
我用
if
语句过滤掉了空格和新行更改,如下所示:

    editorChanges(doc, changes: any[]) {
        if (changes[0].text.some(str => str)) {
            this.signalrHub.push(this.editor.value());
        }
    }
我想我需要的是一个使用的解决方案。
我并不完全熟悉RxJs。
有人对此有经验吗?

以前有人做过这种事情吗?

您可以使用
fromEvent
map
去BounceTime
distinctuntChanged
操作符的组合

import { of, fromEvent } from 'rxjs';
import { map, debounceTime, distinctUntilChanged } from 'rxjs/operators';

let codeTextBox = document.getElementById('codetextbox');

let sourceStream$ = fromEvent(codeTextBox, 'input')
  .pipe(
    map((x: any) => x.target.value),
    debounceTime(300),
    distinctUntilChanged()
  );

cont mysubscription = sourceStream$.subscribe(x=>{
  console.log(x) //<-- this is the latest text in the textbox
});

//mysubscription.unsubscribe(); <-- add this line when your view is getting destroyed
从'rxjs'导入{of,fromEvent};
从'rxjs/operators'导入{map,debounceTime,distinctUntilChanged};
让codeTextBox=document.getElementById('codeTextBox');
让sourceStream$=fromEvent(codeTextBox,'input')
.烟斗(
映射((x:any)=>x.target.value),
去BounceTime(300),
distinctUntilChanged()
);
cont mysubscription=sourceStream$.subscribe(x=>{
console.log(x)//