JSFiddle - React, Tailwind, and code Playground
JavaScript
var AJAX_DATA_ARRAY = [
{ html: 'response0', delay: 1.0 },
{ html: 'response1', delay: 0.2 },
{ html: 'response2', delay: 0.5 }
];
function getResultArrayPromise(ajaxDataArray) {
return $.when.apply($, $.map(ajaxDataArray, function(ajaxData) {
return $.ajax('/echo/html/', { type: 'post', data: ajaxData, dataType: 'text' });
})).then(function() {
return (ajaxDataArray.length > 1)
? $.map(arguments, function(a) { return a[0]; })
: [arguments[0]];
});
}
// Multiple ajax calls.
getResultArrayPromise(AJAX_DATA_ARRAY).done(function(resultArray) {
console.log(resultArray);
// Single ajax call.
getResultArrayPromise([AJAX_DATA_ARRAY[0]]).done(function(resultArray) {
console.log(resultArray);
});
});