function generateHtmlRow(repoData) { var html = ""; html+="" + repoData.name + ""; html+="" + repoData.forks + ""; html+="" + repoData.language + ""; html +=""; return html; } var repos = []; function fetchAllRepositories(orgName, page) { return new Promise(function(resolve, reject) { queryAPIByOrg(API_REPOSITORIES + "?page=" + page, orgName, function(data) { repos.push(...data); if (data.length === 30) { fetchAllRepositories(orgName, page + 1).then(function () { resolve(); }) } else { resolve(); } }, function(error) { //console.log("Unable to load table data"); }); }); } function createOrgTable(orgName, tableContainer) { var html = ""; fetchAllRepositories(orgName, 1).then(function() { for(var i=0; i < repos.length; i++) { html += generateHtmlRow(repos[i]); } $("#" + tableContainer).html(html); $('#dataTable').DataTable(); }).catch(function(error) { //console.log("Unable to create table"); }); }