lib/vow.js
function(delay) {
        var timer,
            promise = this.then(function(val) {
                var defer = new Deferred();
                timer = setTimeout(
                    function() {
                        defer.resolve(val);
                    },
                    delay);

                return defer.promise();
            });

        promise.always(function() {
            clearTimeout(timer);
        });

        return promise;
    }
function(delay) {
        var timer,
            promise = this.then(function(val) {
                var defer = new Deferred();
                timer = setTimeout(
                    function() {
                        defer.resolve(val);
                    },
                    delay);

                return defer.promise();
            });

        promise.always(function() {
            clearTimeout(timer);
        });

        return promise;
    }
function ( delay ) { var timer , promise = this . then ( function ( val ) { var defer = new Deferred ( ) ; timer = setTimeout ( function ( ) { defer . resolve ( val ) ; } , delay ) ; return defer . promise ( ) ; } ) ; promise . always ( function ( ) { clearTimeout ( timer ) ; } ) ; return promise ; }
Returns a new promise that will be fulfilled in `delay` milliseconds if the promise is fulfilled,
or immediately rejected if the promise is rejected.

@param {Number} delay
@returns {vow:Promise}
Returns a new promise that will be fulfilled in delay milliseconds if the promise is fulfilled or immediately rejected if the promise is rejected .