【发布时间】:2017-08-23 11:59:35
【问题描述】:
我有一个问题,我想验证用户名文本字段,但是每个按键都在发送一个 HTTP 请求及其有点垃圾邮件,这是我当前的代码:
lookupUser(username: string): Observable<any> {
let headers = new Headers();
headers.append('User', sessionStorage.getItem('username'));
headers.append('Token', sessionStorage.getItem('token'));
headers.append('AccessTime', sessionStorage.getItem('AccessTime'));
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
return this.http.get("URL" + username, options)
.map(this.extractData)
.catch(this.handleError) as Observable<any>;
};
函数本身
export function usernameTaken(userService: UserService) {
return control => new Promise((resolve, reject) => {
userService.lookupUser(control.value).subscribe(data => {
if (data.username) {
resolve({ usernameTaken: true })
} else {
resolve(null);
}
}, (err) => {
console.log("in error" + err);
if (err !== "404 - Not Found") {
resolve({ usernameTaken: true });
} else {
resolve(null);
}
});
});
}
如果有的话,我应该在哪里添加我的去抖计时器?我尝试将它添加到响应服务,但它引发了未定义的错误。
【问题讨论】:
-
你能建立一个演示这个问题的 plunker 吗?
标签: angular validation timer