![](/img/trans.png)
[英]Javascript doesn't wait for function to finish before executing next line
[英]Javascript doesn't wait for STRIPE.COM function to finish before executing next line
stripe.com是一个付款处理网站,如paypal.com。 他们实际上分两步执行一张信用卡。 第一步,验证卡信息,第二步,将金额和贷记金额扣除到商户帐户中。 但是,对我而言,情况是我需要使用stripe.com验证信用卡信息。 所以我要做的是,调用一个函数“ stripeResponseHandler”,它将CC信息传递给Stripe,并在几秒钟内获得响应。 它很棒。 但是问题是,javascript / jquery不会等到该函数执行完成。 事实是,我已经设置了一个变量,以基于stripeResponseHandler响应来确定下一步。 有什么方法可以让我停止进一步执行,直到stripeResponseHandler函数完成? 这是几行代码:
var cc_validate=1;
function stripeResponseHandler(status, response) { //alert('stripeResponseHandler called');
if (response.error) {
cc_validate=1;
} else { //CC info Correct. Now Charge using PHP by Submit this form
cc_validate=0;
alert('CC Validation passed in stripeResponseHandler call.');
}
}
$('#btnSubmit').on('click', function(e) {
e.stopPropagation();
Stripe.createToken({
number: '4242424242424242',
cvc: '123',
exp_month: '11',
exp_year: '2015'
}, stripeResponseHandler);
alert(cc_validate); // it always output 1(but i need 0 for valid CC)
//'execution always comes here before complete stripeResponseHandler function execution'
createToken与大多数进行网络调用的功能一样,异步进行验证。 将您的处理移入stripeResponseHandler。
无法停止并等待网络呼叫完成,然后再次开始处理而不使用回调。 将进一步处理移入一个函数,然后从函数stripeResponseHandler调用该函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.