我使用的是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();
}));
});