Básicamente, lo que estoy tratando de hacer es una solicitud http recursiva que se ejecutará en solicitudes paralelas limitadas para una ejecución más rápida y obtendrá un resultado usando await.
async function sitetree(subsiteurl, subsitetitle) { var url = "https://xxxxxx.sharepoint.com" + subsiteurl + "/_api/web/webinfos?$select=ServerRelativeUrl,Title" logtext(subsiteurl + "\n", sitetree_file) sitecount++ stats() ajax(url, global_headers, "verbose").then(function (subsites) { requestcount++ stats() subsites.d.results.forEach(function (data) { sitetree(data.ServerRelativeUrl, data.Title); }); }).catch(function (error) { console.log(error) }) }