Tengo un punto final que me devuelve el siguiente token si hay más cosas para buscar, y el código que estoy escribiendo para buscarlo se ve así:
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) Ahora, mientras esto funciona, la función que en realidad lo llama get_all_entities(campaign['id'], 1) no tiene forma de saber cuándo todo está hecho. Intenté agregar un bucle while como este pero bloquea mi navegador (todo se congela)
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 }También intenté devolver get_campaign_entities y usar la devolución de llamada realizada, pero la devolución de llamada realizada solo funciona para la primera llamada.
Podría agregar un argumento de devolución de llamada:
function get_all_entities(campaign_id, page, callback) { get_campaign_entities(campaign['id'], page) .success(function(data) { if (data['next']) { console.log(data['next']) get_all_entities(campaign_id, page + 1, callback) } else { callback(); } }) } get_all_entities(campaign['id'], 1, () => { console.log('Done!'); });