我正在我的Angular(7)项目中使用Google的reCaptcha V3。
我希望在继续执行代码和检查Token是否验证之前,等待Token的响应。
我希望在继续执行代码和检查Token是否验证之前,等待Token的响应。
declare var grecaptcha: any;
ngOnInit() {
this.validateCaptcha();
if(this.gToken)
{
...
}
}
gToken:string;
validateCaptcha()
{
let self = this;
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token){
self.gToken = token;
});
});
}
问题在于this.gToken
未定义,因为它不等待validateCaptcha
完成工作。
我也尝试过使用async
和await
,但没有帮助。也许我用错了。
then
子句中吗? - JumpIntoTheWaterif(token)
中。 - Keeleonasync
和await
的例子吗?我尝试过了,但它没有起作用。 - JumpIntoTheWaterasync/await
更新了答案。请查看。 - Richardson. MngOnInit
之外的另一个方法中使用异步吗?然后再从ngOnInit
中调用这个新方法?我不想让异步出现在ngOnInit
中。 - JumpIntoTheWater