Javascript SDK:我可以在FB.api()中调用另一个FB.api()吗?
Javascript SDK: can i have another FB.api() calls inside FB.api()
// 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()调用,就像我在上面的代码中做的那样,因为我无法获得的值如果(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);
});
}
这就是我如何解决这个问题,我知道这很难看,但这是我目前能做的最好的。
function totalGroups(response) {
var c = 0;
FB.api('/me', function(m_response) {
FB.api('/me/groups', {fields:'owner'}, function(g_response) {
for (i in g_response.data) {
if (g_response.data[i].owner) {
if (g_response.data[i].owner.name == m_response.name) {
c++;
}
}
}
console.log('Total: ' + c);
});
});
}
相关文章:
- Problems with FB.api
- 使用FB.api在Facebook上发布消息
- 取消FB.api(..)请求
- 科尔多瓦脸书登录FB.api调用不起作用
- 下划线模板内的 FB.api() 调用
- 使用FB.api在Javascript中查询事件和好友事件
- FB.api帖子将app_data从链接剥离到选项卡
- 在FB.api函数中创建一个数据项目
- FB.api 名称显示不带按钮
- FB.api 仅在第一次 AJAX 调用页面时加载
- 进行多个 fb.api 调用
- 通过FB API回复页面时,消息为空
- FB.api 不返回用户名
- FB.api 响应未定义
- 无法使用 js 类获取 FB.api 响应
- 如何在 FB API 中延迟 API 调用
- FB API (js adk).获取小组中的所有帖子
- FB.api 名称未定义
- 在对 FB.api 进行异步调用时保留变量值
- FB.api 调用后不需要的页面重新加载