Using $.Deferred
by Neviton
JavaScript
var terms = [
{
name: 'A',
url: 'https://www.mocky.io/v2/57daa2ee110000672fd6ea99'
},
{
name: 'B',
url: 'https://www.mocky.io/v2/57daa2ee110000672fd6ea99'
},
{
name: 'C',
url: 'https://www.mockyX.io/v2/57daa2ee110000672fd6ea99'
}
],
requests = [];
function performRequest(term) {
var ajaxResponse = $.Deferred(),
req = $.get(term.url).done(function() {
console.log('RESOLVE', term.name);
ajaxResponse.resolve();
}).fail(function() {
console.log('REJECT', term.name);
ajaxResponse.reject();
});
requests.push(req);
}
terms.map(performRequest);
$.when.apply($, requests).done(function() {
console.log('DONE');
}).fail(function() {
console.log('FAIL');
});