[英]Stripe createToken Synchronous
目前我有以下验证码:
var validatePayment = function() {
stripe.createToken(card).then(function(result) {
if (result.error) {
// Inform the customer that there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
return false;
} else {
stripe_token = result.token;
return true;
}
});
return false
}
验证付款称为:
if(validatePayment() {
//Do Something
} else {
//Don't do something
}
调用validatePayment
始终为false,因为它的异步函数。 stripe.createToken(card)
有没有办法。 有没有办法让它同步?
由于stripe.createToken(card)
创建了一个承诺,你可以返回,然后确定结果没有条件(如目前,这是同步的),但用.then()
/ .catch()
var validatePayment() {
return stripe.createToken(card).then(function(result) { //<-- note return
};
validatePayment()
.then(() => { /* payment was OK */ })
.catch() => { /* uh-oh... */ });
你可以尝试使用promises
var validatePayment = function() {
return new Promise((resolve,reject)=>{
stripe.createToken(card).then(function(result) {
if (result.error) {
// Inform the customer that there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
return false;
} else {
stripe_token = result.token;
return true;
}
});
}).then(stats => {
resolve(stats)
}).catch( e =>
reject()
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.