由于此应用程序的复杂性,我需要包装 Facebook API 调用,如下所示。
//In main file, read is always undefined
var read = fb_connect.readStream();
// In fb_wrapper.js
function readStream () {
var stream;
FB.api('/me/feed', {limit:10000}, function (response) {
stream = response.data;
});
return stream;
}
我知道由于调用的异步性质,其余的readStream()
函数将返回stream
(没有价值)。我无法找到一种方法将数据移出回调函数范围并备份到更高的范围。 FB API 调用返回正常(我已经调试了一百次),但迄今为止获取响应数据一直是一场战斗。
如果有人有任何建议,我们将不胜感激。我搜索了 Facebook jQuery 插件(也许是作为预制包装器),但运气不佳。
从你的问题来看,你似乎正在寻找同步调用。这意味着您希望在调用 api 调用后立即使用它返回的数据。在这种情况下,您需要检查 FB.api 是否支持同步调用(大多数情况下不支持)。
否则,你需要明白你正在制作一个async打电话到这里。这意味着您应该将处理代码放在传递给 FB.api 的回调函数内。这称为编写代码的“延续”风格,是使用异步调用的标准方法。
FB.api('/me/feed', {limit:10000}, function (response) {
var stream = response.data;
// Do your processing here, not outside!!!
});
Or:
function handlerFunction(response) {
// Do your processing here
}
FB.api('/me/feed', {limit:10000}, handlerFunction);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)