Q.js promise test
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/q.js/0.9.6/q.js"></script>
<p id="Printer"></p>
JavaScript
var p = document.getElementById('Printer');
var d = Q.defer();
p.innerText = "Printer";
d.notify('notify before');
d.promise.progress(function(data){ p.innerHTML += '<br/>progress: ' + data; });
d.notify('notify after')
setTimeout(function(){ d.notify('notify much later') }, 100);