流星异步方法

时间:2014-05-19 09:17:03

标签: asynchronous methods callback meteor

我试图调用方法,在这一个中,我做一个http get,如果结果还可以我返回它并在我的mongodb基础上跟踪它,如果它返回我的错误,我想跟踪它太

不幸的是,它不起作用!我在stackoverflow上阅读了帖子,但只有旧问题。

你有解决方案吗?

客户:

Meteor.call('get',function(err, response) {
  console.log(err+" ee"+response);
});

服务器:

var header = 'xxxxxxxx';
Meteor.startup(function () {

  Meteor.methods({
    get : function(){
      console.log("call");
      var url = 'http://xxxxxxxxxx';
      this.unblock();

      Meteor.http.get(url, function(err,res){
        if(!err){
          //tracking
          return res;
        }else{
          //tracking
          return err;
        }
      });  
    }
  });
});

1 个答案:

答案 0 :(得分:1)

在服务器上,您可以在没有回调的情况下调用HTTP.get来执行“同步”HTTP呼叫。您需要在命令行中meteor add httpHTTP添加到项目中。

Meteor.methods({
  get: function(){
    console.log("call");
    var url = 'http://xxxxxxxxxx';
    this.unblock();

    try {
      var res = HTTP.get(url);
      // tracking
      return res;
    } catch (err) {
      // tracking
      return err; // or throw new Meteor.Error(...)
    }
  }
});