我有,我想驗證用戶名文本框但是每個按鍵被髮送HTTP請求和它有點垃圾的問題,這是我當前的代碼:如何添加去抖時間到驗證服務Angular2?
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);
}
});
});
}
如果有的話,我會在哪裏添加反彈計時器?我試圖將它添加到響應服務,但它拋出了一個未定義的錯誤。
你可以建立一個解決問題的解決方案嗎? – DeborahK