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