私はここに私の現在のコードで、私はしかし、各キーの押下が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