Javascript 角度-从多个服务器获取一个订阅

Javascript 角度-从多个服务器获取一个订阅,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,我只需要从多个网站获得最新的订阅 当我的FormControl值更改时,我只需要在用户完成键入后具有最新的值。这是我的密码- let control = this.register.controls['email']; control.valueChanges.debounceTime(300).pipe(take(1)).subscribe(newValue => { console.log(newValue); }) 但它会返回多个订阅。我怎样才能买到最新的 谢谢 您可以使用 将

我只需要从多个网站获得最新的订阅

当我的FormControl值更改时,我只需要在用户完成键入后具有最新的值。这是我的密码-

let control = this.register.controls['email'];
control.valueChanges.debounceTime(300).pipe(take(1)).subscribe(newValue => {
  console.log(newValue);
})
但它会返回多个订阅。我怎样才能买到最新的

谢谢

您可以使用

将此代码更改为相应的

您可以使用withLatestFrom或CombineTest实现这一点。但推荐的方法是使用最晚的from

take1将只获取第一个值,并停止观察

this.formGroup.get('nom').valueChanges
.pipe(
  debounceTime(300),
  // combineLatest()
  withLatestFrom()
).subscribe(newValue => {
  console.log(newValue);
});

签出:

在管道流中的debouce之后,可能还需要粘贴一个distinctunitChanged,以防止在用户键入后触发事件,然后立即撤消此更改。获取最新值但订阅回调触发器多次使用相同的值。例如,如果我键入5个字符订阅回调触发器5次如果您只想获取最后一个需要的值触发器并关闭blurAs上的事件,因为我在自定义验证器中触发了订阅,这就是为什么更改值后它返回多个订阅。我改变了逻辑,工作正常。
this.formGroup.get('nom').valueChanges
.pipe(
  debounceTime(300),
  // combineLatest()
  withLatestFrom()
).subscribe(newValue => {
  console.log(newValue);
});