1
我有一个返回我的下一个标记,如果有更多的东西来获取一个端点,而我正在写获取它看起来像这样的代码:jQuery的处理递归AJAX调用,如何告诉浏览器,它的完成
function get_all_entities(campaign_id, page){
get_campaign_entities(campaign['id'], page)
.success(function(data){
if (data['next']){
console.log(data['next'])
get_all_entities(campaign_id, page+1)
}
})
}
get_all_entities(campaign['id'], 1)
现在,虽然这个工作,实际上称之为get_all_entities(campaign['id'], 1)
的函数没有办法知道什么时候一切都完成了。我尝试添加像这样一个while循环,但它崩溃我的浏览器(一切都冻结了)
function get_all_entities(campaign_id, page){
all_done = false
get_campaign_entities(campaign['id'], page)
.success(function(data){
if (data['next']){
console.log(data['next'])
get_all_entities(campaign_id, page+1)
}
else{
all_done = true
}
})
while (!all_done){
setTimeout(function(){
}, 2000);
}
return all_done
}
我还试图返回get_campaign_entities和使用做了回调,但回调做只适用于第一个电话。
简单而有效的解决方案。如果你愿意,你可以“积累”数据并通过回调传递回来,这样你就可以获得所需的任何数据。 – rasmeister
这比我刚开始用Promise做的要简单得多。谢谢! –