// count total no. of groups created by me
function totalGroups(response) {
FB.api('/me/groups', {fields:'owner'}, function(g_response) {
for (i in g_response.data) {
FB.api('/me', function(m_response) {
var c = 0;
if (g_response.data[i].owner.name == m_response.name) {
c++;
}
});
}
console.log('Total:' +c);
});
}
嗨,我可以像在上面的代码中那样在 FB.api() 中进行另一个 FB.api() 调用吗,因为我无法获取 if (g_response.data[i].owner) 的值.name == m_response.name)
最佳答案
是的,您可以将 FB.api() 调用嵌入到另一个 Fb.api() 调用中,但由于 FB.api() 调用是异步的,因此可以保证流程。
我在您的代码中发现的一个问题与 var c
有关。
首先,它超出了 console.log('Total:' +c)
方法的范围,而且您已在循环内声明它,这意味着它的值将在每次循环执行后重置。
试试这个:
// count total no. of groups created by me
function totalGroups(response) {
var c = 0;
FB.api('/me/groups', {fields:'owner'}, function(g_response) {
for (i in g_response.data) {
FB.api('/me', function(m_response) {
if (i.owner.name == m_response.name) {
c++;
}
});
}
console.log('Total:' +c);
});
}
关于Javascript SDK : can i have another FB. FB.api() 内的 api() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16132532/