function(count, opts, cb) {
  this.count = count;
  this.cb = cb;
  var self = this;
  if (opts.timeout) {
    this.timerId = setTimeout(function() {
      self.cb(true);
    }, opts.timeout);
  }
}
function(count, opts, cb) {
  this.count = count;
  this.cb = cb;
  var self = this;
  if (opts.timeout) {
    this.timerId = setTimeout(function() {
      self.cb(true);
    }, opts.timeout);
  }
}
function ( count , opts , cb ) { this . count = count ; this . cb = cb ; var self = this ; if ( opts . timeout ) { this . timerId = setTimeout ( function ( ) { self . cb ( true ) ; } , opts . timeout ) ; } }
Count down to zero or timeout and invoke cb finally.
Count down to zero or timeout and invoke cb finally .
A kludge algorithm for the algorithm