Parallel promises
HTML
<div id="content"></div>
JavaScript
var promises = [];
for (var p = 0; p < 10; p++)
{
promises.push(buildPromise(p));
}
$.when.apply($, promises).then( function () {
for(var i = 0; i < arguments.length; i++) {
$('#content').append('<p>' + arguments[i].name + '</p>');
}
})
.then(function(results){
return finalPromise();
})
.then(function(result){
alert('success: ' + result.success);
alert('Finished');
});
function buildPromise(id)
{
var deferred = $.Deferred();
setTimeout(function(){
var data = {id: id, name: 'name: ' + id};
deferred.resolve(data);
}, 10000);
return deferred.promise();
}
function finalPromise()
{
var deferred = $.Deferred();
setTimeout(function(){
var data = { success: true };
deferred.resolve(data);
}, 1000);
return deferred.promise();
}