Javascript 如何从HTTP.call返回Meteor.JS中的值;获得;
我正在编写一个meteor方法,它应该为graph api上的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
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(…)}