JSFiddle - React, Tailwind, and code Playground
by Egli
HTML
<textarea id="some-text-area" rows="20" cols="30"></textarea>
JavaScript
//example array to loop.
var outerQuery= ['A', 'B', 'C', 'D', 'E', 'F'];
var outerQueryLegth = outerQuery.length;
var innerQuery= ['1', '2', '3', '4', '5', '6'];
var innerQueryLegth = innerQuery.length;
//the textarea where im going to print the results in order later to open in excel as a .csv file
var $csvText= $('#some-text-area');
Promise.all(outerQuery.map(function(outer) {
return GoogleAnalyticsAPI(outer);
})).then(function(results) {
$csvText.append(results.map(function(outer) {
return outer.column1;
Promise.all(innerQuery.map(function(inner) {
return GoogleAnalyticsAPI(inner);
})).then(function(results) {
$csvText.append(results.map(function(inner) {
return inner.column1;
}));
});
}));
});
/*
Promise.all(outerQuery.map(function(outer) {
return GoogleAnalyticsAPI(outer);
})).then(function(response) {
$csvText.append(response.map(function(outer) {
return response.column1;
}).join('\r\n'));
});
*/
/*
$.each(outerQuery, function(outerIndex, outer){
//Print the row
$csvText.append('Row' + outer +'\r\n\r\n');
//Nested inner loop
innerQuery.reduce(function(innerCallback, inner, innerIndex){
return innerCallback.then(function(){
return GoogleAnalyticsAPI(inner).then(function(response){
$csvText.append(response.column1 +',');
});
});//end inner callback
},Promise.resolve());
});
*/
function GoogleAnalyticsAPI(val) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve({column1: val });
}, Math.floor((Math.random() * 1000) + 1));
});
}
function GoogleAnalyticsAPI2(outer) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve(outer);
}, Math.floor((Math.random() * 1000) + 1));
});
}
/*
//inserting the csv headers
$csvText.val('Column1, Column2\r\n');
//reducing all...