Я пытался заставить работать Meteor.WrapAsync
Я прочитал синтаксис Meteor wrapAsync, это видео https://www.eventedmind.com/feed/meteor-meteor-wrapasync, и я просто не могу сообразите, как return
ответить на вызов от Stripe. Я использую console.log
для печати шагов, и я достигал броска номер 4, что означает, что я достигаю stripe
сервера и получаю ответ, но после этого я не понимаю, почему console.log(5)
не печатает. пожалуйста, если кто-нибудь может помочь мне понять, почему его wrapAsyn не возвращает обратный вызов полосы?
//this functions are part of an anonymous function and running in the server side of meteor
stripe.charge = function (stripeToken) {
// get a sync version of our API async func
var strypeChargeSync = Meteor.wrapAsync(stripe.charge.process);
// call the sync version of our API func with the parameters from the method call
console.log("1");
var response = strypeChargeSync(stripeToken);
console.log("5" + response); ///// this never get print / log
return response;
}
stripe.charge.process = function(stripeToken){
var _stripe = StripeAPI(stripeKey);
console.log("2");
var charge = _stripe.charges.create({
amount: 1000, // amount in cents, again
currency: "cad",
card: stripeToken.id,
description: "paid@whatever"
}, function(err, charge) {
if (err && err.type === 'StripeCardError') {
alert("Sorry we couldn't charge the money: " + err);
//console.log(err);
}else{
console.log("4");
//console.log(charge);
return charge;
}
});
console.log("3");
}
//текущий выход 1,2,3,4, но никогда не 5 :(
РЕДАКТИРОВАТЬ
вот как у меня закончилась функция Stripe спасибо за поддержку
var syncFunction = Meteor.wrapAsync(_stripe.charges.create, _stripe.charges);
var response = syncFunction({
amount: 1000, // amount in cents, again
currency: "cad",
card: stripeToken.id,
description: "paid@whatever"
});
Meteor.wrapAsync(stripe.charge.process, stripe.charge)
- person imslavko   schedule 13.10.2014