我有异步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请求。