小编典典

流星:在Meteor.method中调用异步函数并返回结果

javascript

我想在Meteor方法内调用异步函数,然后将结果从该函数返回给Meteor.call。

(怎么)可能?

Meteor.methods({
  my_function: function(arg1, arg2) {
    //Call other asynchronous function and return result or throw error
  }
});

阅读 316

收藏
2020-05-01

共1个答案

小编典典

对于这种情况,Meteor现在具有Meteor.wrapAsync()。

这是通过Stripe收费并传递回调函数的最简单方法:

var stripe = StripeAPI("key");    
Meteor.methods({

    yourMethod: function(callArg) {

        var charge = Meteor.wrapAsync(stripe.charges.create, stripe.charges);
        charge({
            amount: amount,
            currency: "usd",
            //I passed the stripe token in callArg
            card: callArg.stripeToken,
        }, function(err, charge) {
            if (err && err.type === 'StripeCardError') {
              // The card has been declined
              throw new Meteor.Error("stripe-charge-error", err.message);
            }

            //Insert your 'on success' code here

        });
    }
});
2020-05-01