Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从HTTP.call返回Meteor.JS中的值;获得;_Javascript_Ajax_Http_Meteor_Facebook Javascript Sdk - Fatal编程技术网

Javascript 如何从HTTP.call返回Meteor.JS中的值;获得;

Javascript 如何从HTTP.call返回Meteor.JS中的值;获得;,javascript,ajax,http,meteor,facebook-javascript-sdk,Javascript,Ajax,Http,Meteor,Facebook Javascript Sdk,我正在编写一个meteor方法,它应该为graph api上的HTTP.call返回Facebook响应,但是HTTP.call只有一个显示错误/响应的回调函数,所以我不能将此数据带到外部,并且该方法不能返回任何值 这是我的方法代码: loadUserFBEvents: function () { var accessToken = Meteor.user().services.facebook.accessToken; var query = "me?fields=likes.limi

我正在编写一个meteor方法,它应该为graph api上的
HTTP.call
返回Facebook响应,但是
HTTP.call
只有一个显示错误/响应的回调函数,所以我不能将此数据带到外部,并且该方法不能返回任何值

这是我的方法代码:

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使其同步,以便它以您期望的方式返回上面的响应


您需要记录或使用回调内部的响应,或者使用Meteor.wrapAsync使其同步,以便它以您期望的方式返回上述响应


不要传递回调以使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);

不要传递回调以使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);

响应=数据。若您的响应为null,那个么您一定是在某个地方出错了。响应确实从请求返回了正确的数据,但整个HTTP.call并没有将其返回到console.log,而console.log正在包装整个HTTP.call是的,这很尴尬。只需执行console.log(response),就没有理由对整个方法执行console.log。你想在这里实现什么?简而言之,这就是我想要实现的:
loadUserFBEvents:function(){return HTTP.call(…)}
Response=data。若您的响应为null,那个么您一定是在某个地方出错了。响应确实从请求返回了正确的数据,但整个HTTP.call并没有将其返回到console.log,而console.log正在包装整个HTTP.call是的,这很尴尬。只需执行console.log(response),就没有理由对整个方法执行console.log。你想在这里实现什么?简而言之,这就是我想实现的:
loadUserFBEvents:function(){return HTTP.call(…)}