var log = function(content){ $('<p/>').html(content).appendTo('#log'); } function doTask(i, next){ setTimeout(function(){ log("Step " + ++i + " finished."); next(); }, Math.random()*1000); } $(function(){ doTask(0, function(){ doTask(1, function(){ doTask(2, function(){ doTask(3, function(){ doTask(4, function(){ log("All steps done."); }); }); }); }); }); });
<div id="log"></id>