簡體   English   中英

Angular 2異步驗證器

[英]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,以便如何以適當的方式等待響應

上面的功能是角度驗證器功能

您可以使用Observablemap函數來轉換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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM