如何解决如何从Javascript Facebook API请求返回数组?
| 希望有一个简单的方法可以做到这一点,而我的Javascript技能只是缺乏。我想调用一个函数,该函数将获取一些Facebook帖子,将它们添加到数组中并返回其他地方使用。当前代码如下。function GetFaceBookStream(name,max) {
FB.init({ apiKey: \'removed for post\' });
var lastDate = \'2011-04-29Z00:00:00\';
var faceBookArray = [];
var faceBookString;
FB.api(\"/\" + name + \"/feed\",{ limit: max,since: lastDate },function (response) {
var sb = string_buffer();
for (var i = 0; i < response.data.length; i++) {
var post = response.data[i];
sb.append(\"<li class=\'facebook\'>\");
sb.append(\"<img alt=\\\"Facebook\\\" src=\'Images\\\\Carousel\\\\fbIcon.png\\\' />\");
sb.append(\"<h4>FACEBOOK</h4>\\n\");
sb.append(\"<div class=\\\"from-name\\\"><a href=\\\"http://www.facebook.com/#!/profile.php?id=\" + post.from.id + \"\\\">\" + post.from.name + \"</a></div>\");
sb.append(\"<div class=\\\"time\\\">\" + post.created_time + \"</div>\");
if (post.message != undefined) {
sb.append(\"<div class=\\\"message\\\">\" + post.message + \"</div>\");
}
sb.append(\"</li>stringSplitMarker\");
}
faceBookString = sb.toString();
faceBookArray = faceBookString.split(\'stringSplitMarker\');
});
return faceBookArray;
}
我意识到由于Javascript中的可变范围,此设置无法正常工作,但这基本上是我要实现的目标。任何帮助将不胜感激!
解决方法
您正在发出异步AJAX请求。
回调仅在代码完成后运行。
您需要使用回调将数据传回。
例如:
function GetFaceBookStream(name,max,callback) {
...
FB.api(...,function(response) {
...
callback(something,else);
});
}
您可以通过提供回调以接收响应来调用该函数:
GetFaceBookStream(name,function(param1,param2) {
//This code runs later and can use the response.
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。