define([ 'dojo/_base/lang', 'dojo/Deferred', 'qed/lib/async' ],function(lang,Deferred,async){ function delayed(i) { var t = setTimeout(function(){ console.log("Delay fired after "+i+"s"); d.resolve(i); },i*1000); var d = new Deferred(function(){ t && clearTimeout(t); d.reject(i); }); return d.promise; }; var is = [5,1,4,2,3]; async.seq([ function() { console.log("foreach - items should appear in original order"); return async.forEach(is,delayed).then(console.log); }, function () { console.log("map - items should appear sorted"); return async.map(is,delayed).then(console.log); } ]).then(function(){ console.log("Done!"); },function(err){ console.log("Fail!",err); }); });