同步2个facebook api调用的结果

时间:2015-03-14 13:49:07

标签: javascript facebook-graph-api facebook-javascript-sdk

我有一个表,我想从我的JS填充。用于填充表的数据来自以下调用:

for(var i = 0; i < arr.length; ++i) {
    FB.api(arr[i].id, OnEventResponse);
    FB.api(arr[i].id + '/picture', {"redirect": false,"type": "large"}, OnPictureResponse);
}

因为它在for循环中,我无法在OnPictureResponseOnEventResponse上填充表异步。函数OnPictureResponse的响应时间较长,我无法在id标记上设置<tr>因为函数OnPictureResponse中的响应不包含它。 ..
有什么想法可以解决这个问题吗?我不知道..也许是一个回调,它会给我两个API调用的响应。

1 个答案:

答案 0 :(得分:1)

解决此问题的一个好方法是使用promises:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise

我更喜欢使用此polyfill:https://github.com/jakearchibald/es6-promise

...因为只要我能停止支持旧浏览器,我唯一需要做的就是删除polyfill。

另一种(可能更好)的方法是在Facebook中使用批量请求。您可以在文档中找到相关信息:https://developers.facebook.com/docs/graph-api/making-multiple-requests