gpt4 book ai didi

javascript - 等待循环结束,facebook API?

转载 作者:行者123 更新时间:2023-11-30 17:11:10 26 4
gpt4 key购买 nike

有没有办法改进我插入物体的方式?

我的问题是 console.log(facebookPlayers) 是空的,但是通过 setTimeout 它显示了新的对象数组。显然是因为它在对象数组填充之前被调用。

我计划用这个对象数组构建一个 Backbone 集合,这是我从 facebook API 构建对象数组的最初想法。也许有更好的方法,或者这可行,但如果可行,我需要找出一种方法来等待对象完全填充。

var facebookPlayers = [];

FB.api('/554870764588961/members/', function (response) {
for (i = 0; i < response.data.length; i++) {
FB.api(response.data[i].id+'/picture', function (response) {
facebookPlayers.push({key:response.data.url});
});
}
});

console.log(facebookPlayers)

最佳答案

为每个成员再次调用 API 不是一个好主意。它非常慢,您可能会达到 API 限制。您应该考虑使用 nested queries :

function getPlayers(callback) {
var facebookPlayers = [];

FB.api('/554870764588961?fields=members{id,name,picture}', function (response) {
for (var i = 0, count = response.data.length; i < count; i++) {
facebookPlayers.push({key:response.data[i].picture.data.url});
}
callback(facebookPlayers);
});
}

getPlayers(function (response) {
console.log(response);
});

未测试,但 API 调用在 API Explorer 中有效所以应该没问题。

编辑:我还修复了“i”的范围并使循环更快一些。

关于javascript - 等待循环结束,facebook API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26982062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com