api-chain.js
function(err) {
        if (err) this._onError(err);
        if (this._continueErrors || !err) {
            var args = [].slice.call(arguments);
            if (this._callbacks.length > 0) {
                this._isQueueRunning = true;
                var cb = this._callbacks.shift();
                cb = cb.bind(this);
                args = args.slice(1);
                args.push(this.next);
                cb.apply(this, args);

            } else {
                this._isQueueRunning = false;
                this.start = (function() {
                    this.start = null;
                    this.next.apply(this, args);
                }).bind(this);

            }
        }
        return this;
    }
function(err) {
        if (err) this._onError(err);
        if (this._continueErrors || !err) {
            var args = [].slice.call(arguments);
            if (this._callbacks.length > 0) {
                this._isQueueRunning = true;
                var cb = this._callbacks.shift();
                cb = cb.bind(this);
                args = args.slice(1);
                args.push(this.next);
                cb.apply(this, args);

            } else {
                this._isQueueRunning = false;
                this.start = (function() {
                    this.start = null;
                    this.next.apply(this, args);
                }).bind(this);

            }
        }
        return this;
    }
function ( err ) { if ( err ) this . _onError ( err ) ; if ( this . _continueErrors || ! err ) { var args = [ ] . slice . call ( arguments ) ; if ( this . _callbacks . length > 0 ) { this . _isQueueRunning = true ; var cb = this . _callbacks . shift ( ) ; cb = cb . bind ( this ) ; args = args . slice ( 1 ) ; args . push ( this . next ) ; cb . apply ( this , args ) ; } else { this . _isQueueRunning = false ; this . start = ( function ( ) { this . start = null ; this . next . apply ( this , args ) ; } ) . bind ( this ) ; } } return this ; }
advance to next cb
advance to next cb