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)//