Rxjs 无法使用输入流中的distinctUntilChanged()筛选唯一值
我需要你的帮助。我是Rxjs世界的新手,正在尝试使用distinctUntilChanged()操作符来避免通过输入框从流接收到重复的值。但我看不出输出有什么不同。也许我没有理解rxjs文档的解释。 下面是我试图演示此示例的url。 如果你能帮我做一些解释和修改,那就太好了Rxjs 无法使用输入流中的distinctUntilChanged()筛选唯一值,rxjs,rxjs-pipeable-operators,Rxjs,Rxjs Pipeable Operators,我需要你的帮助。我是Rxjs世界的新手,正在尝试使用distinctUntilChanged()操作符来避免通过输入框从流接收到重复的值。但我看不出输出有什么不同。也许我没有理解rxjs文档的解释。 下面是我试图演示此示例的url。 如果你能帮我做一些解释和修改,那就太好了 ngOnInit(){ 常量输入框$= fromEvent(this.inputVal.nativeElement,'keyup').pipe( 映射(res=>res.target.value), //点击(char=>
ngOnInit(){
常量输入框$=
fromEvent(this.inputVal.nativeElement,'keyup').pipe(
映射(res=>res.target.value),
//点击(char=>console.log(char)),
去BounceTime(1000),
distinctUntilChanged(),
点击(char=>console.log(char)),
映射(text=>this.fnGetDbData(text))
)
inputObs$.subscribe(res=>{
console.log(res)
this.dbPlace=res;
});
}请在标题中指定您的问题,并将闪电战中的代码数量减少到演示您的问题/查询所需的最小值。@Jota.Toledo首先,为了您的回答,我已按照您的建议更改了标题。现在的问题是,我试图过滤来自输入流的重复值,但我看不到输出中有任何差异。具体说明您尝试了什么输入?如果我键入a,等待解盎司,然后删除它并再次键入a,只会发出1个值,第一个a您希望得到什么输出?
distinctUntilChanged
在您的示例中正常工作。它从不让相同的值一个接一个地直接通过两次,明白了吗。非常感谢你的支持。我好像对接线员有点困惑。我想如果我键入多个a,那么输出中只会发布一个a。请在标题中指定您的问题,并将闪电战中的代码量减少到演示您的问题/查询所需的最小值。@Jota.Toledo首先,为了您的回答,我已按照您的建议更改了标题。现在的问题是,我试图过滤来自输入流的重复值,但我看不到输出中有任何差异。具体说明您尝试了什么输入?如果我键入a,等待解盎司,然后删除它并再次键入a,只会发出1个值,第一个a您希望得到什么输出?distinctUntilChanged
在您的示例中正常工作。它从不让相同的值一个接一个地直接通过两次,明白了吗。非常感谢你的支持。我好像对接线员有点困惑。我想如果我输入多个a,那么输出中只会发布一个a。
ngOnInit() {
const inputObs$ =
fromEvent<any>(this.inputVal.nativeElement, 'keyup').pipe(
map(res => res.target.value),
//tap(char => console.log(char)),
debounceTime(1000),
distinctUntilChanged(),
tap(char => console.log(char)),
map(text => this.fnGetDbData(text))
)
inputObs$.subscribe(res => {
console.log(res)
this.dbPlace = res;
});