我读到了有关这个问题的所有内容,我必须承认我还很遗失。
我有一个支付系统,需要执行HTTP POST查询来验证付款。
所以基本上这是我在服务器上的代码:
Payment.sendPayment = function(callback){
HTTP.post(..., function(err, result){
if(err) throw new Error('This is an error!');
callback && callback(null);
});
}
使用以下方法:
Meteor.methods({
buy: function(){
Payment.sendPayment(function(err){
if(err) throw new Meteor.Error('buy', err);
});
}
});
由于返回不在main函数中,因此无效。我尝试使用wrapAsync:
Meteor.methods({
buy: function(){
var sendPayment = Meteor.wrapAsync(Payment.sendPayment);
console.log(sendPayment());
}
});
仍然无效。我找不到任何简单的wrapAsync示例。我发现了一些关于Future包的东西但帖子很老了。
有任何想法吗?
谢谢!
答案 0 :(得分:1)
如果你想使用期货,这里有一个例子:
var Future = Npm.require('fibers/future');
Meteor.methods({
buy: function(){
var future = Future();
Payment.sendPayment(function(err){
if(err) {
return future.return(err); //return the error
}
return future.return(); //you can return the result here if you want
});
return future.wait();
}
});