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');
});