如何从客户端回调中的Meteor方法获取结果?

时间:2014-11-24 18:15:32

标签: meteor

我使用的是twilio meteor包:https://github.com/andreioprisan/twilio-meteor。它运行良好但我无法从客户端回调中的方法调用中获得结果。无论我尝试什么,调用的结果总是未定义的。我尝试使用Futures(参见下面的代码)和wrapAsync,如https://stackoverflow.com/a/23715617/3223028所示,但永远不会在客户端上获得结果。我可能遗漏了一些非常明显的东西?

Meteor.call("sendSMS", numberTo, numberFrom,  function(err, result) {
    console.log(result); //this is always undefined. I want the reponse from twilio.sendSms here
});

我在服务器上的方法是:

Meteor.methods({      
   "sendSMS": function (to, from) {
    var Future = Npm.require('fibers/future')
    var fut = new Future();
    twilio = Twilio(ACCOUNT_SID, AUTH_TOKEN);
    twilio.sendSms({
      to: to, 
      from: from, 
      body: 'lorem ipsum.'
     },  
    Meteor.bindEnvironment(function(err, responseData) {
       if (!err) { 
         console.log(responseData.body); // logs response correctly on the server
         fut.return(responseData);
       }
       else{
           console.log(JSON.stringify(err)); // logs error correctly on the server   
           fut.return(err);    
       }
       return fut.wait();
   }));
});

0 个答案:

没有答案