加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

打字稿 – 访问’this’Inside Promise

发布时间:2020-12-17 06:48:28 所属栏目:安全 来源:网络整理
导读:在下面的typescript函数中,’this’不会解析为EmailValidator的实例.如何更正此功能,以便它解析为正确的EmailVaildator实例,以便我可以访问_registerServices? class EmailValidator { constructor(private _registerServices: RegisterServices) { } isAva
在下面的typescript函数中,’this’不会解析为EmailValidator的实例.如何更正此功能,以便它解析为正确的EmailVaildator实例,以便我可以访问_registerServices?

class EmailValidator {

    constructor(private _registerServices: RegisterServices) { }

    isAvailable(c: AbstractControl): Promise<ValidationResult> {
        let q = new Promise((resolve,reject) => {
            this._registerServices.emailIsAvailable(antiForgeryToken(),c.value)
                .then(result => {
                    // Need to actually check the result.
                    resolve({ "emailtaken": true })
                },error => {
                    // Need to communicate the server error? Probably not.
                    resolve({ "servererror": true })
                });
        });

        return q;
    }
}

解决方法

你输了这个,因为你在这里传递isAvailableEmail作为“原始”函数:

email: ['',Validators.required,this._emailValidator.isAvailableEmail]

您可以通过将其绑定到此来解决此问题(使用胖箭头):

email: ['',(control) => { this._emailValidator.isAvailableEmail(control) }
]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读