如何从 HTTP.call "GET" Meteor.JS 中 return 值

How to return value in Meteor.JS from HTTP.call "GET"

我正在写一个流星方法,它应该 return Facebook 对 HTTP.call 在图 api 上的响应,但是 HTTP.call 只有一个回调函数要显示error/response,所以我不能把这个数据带到外面,而且Method不能return任何值。

这是我的方法代码:

loadUserFBEvents: function () {
  var accessToken = Meteor.user().services.facebook.accessToken;
  var query = "me?fields=likes.limit(5){events{picture,cover,place,name,attending_count}}";
  console.log(
    HTTP.call("GET", "https://graph.facebook.com/" + query + "&access_token=" + accessToken + "", function(error,response){
      if(error){
        return error;
      }
      if(response){
        return response;
      }
    })
  );
}

您需要记录或使用来自回调内部的响应,或者使用 Meteor.wrapAsync 使其同步,以便它 returns 符合您期望的方式。

http://docs.meteor.com/#/full/meteor_wrapasync

不要传递回调以获取到 return 的 HTTP。您还可以很容易地传递 URL 参数:

var result = HTTP.call("GET", "https://graph.facebook.com/me", {
    params: {
        access_token : Meteor.user().services.facebook.accessToken,
        fields : "likes.limit(5){events{picture,cover,place,name,attending_count}}"
    }
});

console.log(result);