RxJs Angular Async Validator去抖并取最新值

时间:2017-02-27 05:43:11

标签: javascript angular rxjs

我有异步Angular验证器来检查帐户组是否已存在。

public accountGroupAlreadyExistsValidator(orgId: number, parentId: number) {
return (control: AbstractControl) => {
  return new Observable((obs: any) => {
    control
      .valueChanges
      .debounceTime(500)
      .filter(value => value.length > 0)
      .distinctUntilChanged()
      .flatMap(accountGroupName => this.accountGroupService
        .accountGroupExistsInOrganization(orgId, parentId, accountGroupName)
      )
      .subscribe(result => {
        result === true ?
          obs.next({ accountGroupAlreadyExists: true }) : obs.next(null);
        obs.complete();
      });
  });
};

}

代码可以工作,但它会发送n个AJAX请求。如何在用户停止输入时修改代码以仅发送1个请求。

当前场景:如果用户键入5个字符,则会发出5个AJAX请求。

0 个答案:

没有答案