code: 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;
      }
docs: 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}