gpt4 book ai didi

javascript - 如何从递归异步回调返回值?

转载 作者:行者123 更新时间:2023-12-03 09:43:41 25 4
gpt4 key购买 nike

我正在使用 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));

但是因为它是异步的,所以我返回了未定义的值。我查看了异步请求的其他返回值,但它们都不是递归的,答案是使用我拥有的回调。

我什至不确定这是否可能。

最佳答案

对 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);

关于javascript - 如何从递归异步回调返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103747/

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