Angular 2异步验证器

时间:2018-10-07 17:03:58

标签: angular

   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。  那么如何以适当的方式等待响应

以上功能为角度验证器功能

1 个答案:

答案 0 :(得分:1)

您可以使用Observable的{​​{1}}函数来转换map发出的值,如下所示:

Observable