为了账号安全,请及时绑定邮箱和手机立即绑定

流星:在服务器上正确使用Meteor.wrapAsync

流星:在服务器上正确使用Meteor.wrapAsync

HUX布斯 2019-10-18 11:18:07
背景我正在尝试将条纹付款集成到我的网站中。我需要使用我的专用条纹密钥创建一个条纹用户。我将此密钥存储在服务器上,并调用服务器方法来创建用户。也许还有另一种方法可以做到这一点?这是条纹API(为方便起见,在下面复制):https : //stripe.com/docs/api/node#create_customer//stripe api callvar Stripe = StripeAPI('my_secret_key');Stripe.customers.create({  description: 'Customer for test@example.com',  card: "foobar" // obtained with Stripe.js}, function(err, customer) {  // asynchronously called});我的尝试和结果我一直在使用相同的客户端代码和不同的服务器代码。所有尝试都会立即在客户端的console.log(...)上给出undefined,但在服务器的console.log(...)上给出正确的响应://clientMeteor.call('stripeCreateUser', options, function(err, result) {  console.log(err, result);});//server attempt 1var Stripe = StripeAPI('my_secret_key');Meteor.methods({    stripeCreateUser: function(options) {          return Meteor.wrapAsync(Stripe.customers.create({            description: 'Woot! A new customer!',            card: options.ccToken,            plan: options.pricingPlan        }, function (err, res) {            console.log(res, err);            return (res || err);        }));    }});//server attempt 2var Stripe = StripeAPI('my_secret_key');Meteor.methods({    stripeCreateUser: function(options) {          return Meteor.wrapAsync(Stripe.customers.create({            description: 'Woot! A new customer!',            card: options.ccToken,            plan: options.pricingPlan        }));    }});我也尝试了没有Meteor.wrapAsync的情况。编辑-我也在使用这个包:https : //atmospherejs.com/mrgalaxy/stripe
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

另一个选择是此程序包可以实现类似的目标。


meteor add meteorhacks:async

从README包中:


Async.wrap(函数)


包装一个异步函数,并允许它在Meteor内部运行而无需回调。


//declare a simple async function

function delayedMessge(delay, message, callback) {

  setTimeout(function() {

    callback(null, message);

  }, delay);

}


//wrapping

var wrappedDelayedMessage = Async.wrap(delayedMessge);


//usage

Meteor.methods({

  'delayedEcho': function(message) {

    var response = wrappedDelayedMessage(500, message);

    return response;

  }

});


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信