繁体   English   中英

Javascript在执行下一行之前不等待STRIPE.COM函数完成

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM