我正在使用facebook js sdk,我正在尝试获取所有组的列表,响应被分页。所以递归似乎是这个
的明显解决方案function handlePaging(response) {
if (response && !response.error) {
if (response.paging.next) {
return response.data.concat(FB.api(response.paging.next, handlePaging));
} else {
return response.data;
}
}
}
console.log(FB.api("/me/groups", handlePaging));
但是因为它的异步我得到了未定义的返回。我已经看过异步请求的其他返回值,但是没有一个是递归的,答案是使用回调,我有。
我甚至不确定这是否可能。
答案 0 :(得分:1)
对FB.api的调用是异步的,因此它通常在调用服务器之前立即返回并调用handlePaging回调。试试这样的事情
var data = [];
function handlePaging(response) {
if (response && !response.error) {
data = data.concat(response.data);
if (response.paging.next) {
FB.api(response.paging.next, handlePaging);
} else {
console.log(data);
}
}
}
FB.api("/me/groups", handlePaging);