[英]Angular 2 async validator
isUnameTaken(formCtrl:FormControl): Promise<any>|Observable<any>{
var status ;
console.log(this.formGroup);
this.http.post("http://localhost:3000/user/isAvaliable", { userName: formCtrl.value}).subscribe((resp:any)=>{
console.log(resp);
status = resp.status;
console.log(status);
if (status === 'success') {
return Promise.resolve({ userExists: true });
} else {
return Promise.resolve(null);
}
});
}
我的狀態為undefined,因為發布請求需要花費一些時間來解決,所以我嘗試使用Promise.resolve返回Promise,以便如何以適當的方式等待響應
上面的功能是角度驗證器功能
您可以使用Observable
的map
函數來轉換Observable
發出的值,如下所示:
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
// ...
return this.http.post("http://localhost:3000/user/isAvaliable", { userName: formCtrl.value }).pipe(
map((resp: any) => {
console.log(resp);
status = resp.status;
console.log(status);
return status === 'success' ? { userExists: true } : null;
})
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.