jquery vs q promises

by andrewray

HTML

<script src="https://raw.github.com/kriskowal/q/master/q.js"></script>

JavaScript

$(function() {
    
    var $delay = function(time) {
        var d = $.Deferred();
        setTimeout(d.resolve, time);
        return d.promise();
    };

    var jQueryPromise = $delay(0);
    
    jQueryPromise.then(function() {
        return $delay(1000).then(function() {
            console.log('first delay finished');
        });
    });
    
    jQueryPromise.then(function() {
        return $delay(1000).then(function() {
            console.log('second delay finished');
        });
    });
    
    $delay(2000).then(function() {
            
        var qDelay = function(time) {
            var d = Q.defer();
            setTimeout(d.resolve, time);
            return d.promise;
        };
        
        var qPromise = qDelay(0);
        
        qPromise = qPromise.then(function() {
            return qDelay(1000).then(function() {
                console.log('first delay finished');
            });
        });
        
        qPromise.then(function() {
            return qDelay(1000).then(function() {
                console.log('second delay finished');
            });
        });
    });
});