我正在尝试遍历数组organization
并调用Facebook API来返回Facebook ID。
循环非常适合循环遍历值以进行API调用,并且我得到了响应。但是,当我尝试将响应存储回组织[i] .fbid时,我收到错误:
无法设置未定义的属性'fbid'。
似乎在行执行时,i的值已经超过我已定义的值。对于这个,有比循环更好的方法吗?或者有没有办法在特定的Facebook API调用中使用i的值,这样我就可以将所有数据存储回适当的数组。
for (var i = 0; i < organization.length;i++) {
FB.api(organization[i].url, function(response){
console.log(response); //Ok here, responds with correct FacebookID
organization[i].fbid = response.id; // Get an undefined here
})
}
更新:如果有人读到这个,解决方案通过提供的链接工作。对不起这个骗局。
var funcs = [];
function getEventInfo() {
for (let i = 0; i < organization.length;i++) {
funcs[i] = function() {
FB.api(organization[i].url, function(response){
organization[i].fbid = response.id;
organization[i].fbname = response.name;
console.log(organization);
})
}
funcs[i]();
}
}