我在Node.js中使用Recaptcha,我在使用某些布尔变量的范围时遇到了一些麻烦。如果我能解决这个问题,Recaptcha将会有效。另外,我没有使用快递。
如果正确评估了recaptcha,则在simple_recaptcha中的函数中将flag设置为true。但是当函数终止时,flag为false并且不再为true。
我想知道我是否可以通过引用来解决此问题?还有其他方法吗?
function processRecaptcha(response){
...got IP address ...
...set some variables ...
flag = false; // I have tried both w/o var and with var
simple_recaptcha(recaptcha_private_key, ip, challenge, response, function(err) {
if (err) {
flag = false;
console.log('recaptcha code: Incorrect. Flag is: ' + flag);
}
else{
flag = true;
console.log('recaptcha code: Correct. Flag is: ' + flag);
}
});
console.log('Flag is: ' + flag);
return flag;
}
答案 0 :(得分:2)
您的功能正常运行(最有可能),并且由于 simple_recaptcha 调用的异步特性而导致此问题。
您的代码执行此操作:
simple_recaptcha()
函数)有时候,当解决simple_recaptcha时,你的标志设置为true。但原来的功能现在已经退回了。
根据您的代码和用法,您应该能够将return flag;
部分移到simple_recaptcha()
回调函数内的某个位置。