以角度添加 AsyncValidator 时出错

我正在尝试添加一个新的 AsyncValidator 来检查用户的电子邮件是否已存在于数据库中。以下是可能的验证器:


  export class UniqueEmailValidator implements AsyncValidator {

    constructor(private webService: WebWrapperService) {}


    validate(ctrl: AbstractControl): Promise < ValidationErrors | null > | Observable < ValidationErrors | null > {    

      return this.webService.isEmailExistEx(ctrl.value)

        .pipe(

          map(res => {    

            console.log("get response" + res);

            if (res) {

              return { 'uniqueEmail': true};

            }

            return null;                

          })


        );

    }

  }

服务中的函数 isEmailExistEx 会向服务器发送一个 post 请求。


isEmailExistEx(email: string): Observable<boolean> {

    this.http.post(this.baseUrl + "auth/verify",

      {

        "email": email

      })

      .subscribe(

        (val: any) => {

          if (!val.result) {

            return of(false);

          } else {

            return of(true);

          }

        },

        response => {

          return of(false);

        },

        () => {

          return of(false);

        });

  }

它报告以下错误:


声明类型既不是“void”也不是“any”的函数必须返回一个值。


我应该如何修改这个函数?


炎炎设计
浏览 180回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript