function destroy(err) {
            if (!this._alive) {
                return this;
            }
            var ress = this._results;
            var callback = this.callback;
            var failure  = this.failure;
            var dispose = this.dispose;

            this._tasks = null;
            this._taskcount = 0;
            this._results = null;
            this.callback = none;
            this.failure = none;
            this.dispose = none;

            // @TODO: Change where to run to finally.
            //dispose.call(this); // run the "dispose()"

            ress.shift(); // remove null-result created on first iterate

            try {
                if (callback) {
                    callback(err, ress);
                } else if (err) {
                    // if err and no callback,
                    // throw to exec failure callback
                    throw err;
                }
            } catch (ex) {
                if (failure) {
                    try {
                        failure(ex);
                    } catch (ex1) {
                        if (Bucks._isOnError) {
                            Bucks._onError(ex1, this);
                        } else {
                            throw ex1;
                        }
                    }
                } else {
                    // if err and no failure callback
                    // throw it
                    if (Bucks.DEBUG) {
                        // if DEBUG, logging
                        logError(ex);
                    }
                    if (Bucks._isOnError) {
                        Bucks._onError(ex, this);
                    } else {
                        throw ex;
                    }

                }
            } finally {

                try {
                    dispose.call(this); // run the "dispose()"
                } catch (ex1) {
                    if (Bucks._isOnError) {
                        Bucks._onError(ex1, this);
                    } else {
                        throw ex1;
                    }
                }

                // @TODO: excluded from the deleted
                // delete this._interrupt;

                delete this._alive;
                delete Bucks.running[this.__id];
                delete Bucks.living[this.__id];
                delete this.__id;
            }
            return this;
        }
function destroy(err) {
            if (!this._alive) {
                return this;
            }
            var ress = this._results;
            var callback = this.callback;
            var failure  = this.failure;
            var dispose = this.dispose;

            this._tasks = null;
            this._taskcount = 0;
            this._results = null;
            this.callback = none;
            this.failure = none;
            this.dispose = none;

            
            

            ress.shift(); 

            try {
                if (callback) {
                    callback(err, ress);
                } else if (err) {
                    
                    
                    throw err;
                }
            } catch (ex) {
                if (failure) {
                    try {
                        failure(ex);
                    } catch (ex1) {
                        if (Bucks._isOnError) {
                            Bucks._onError(ex1, this);
                        } else {
                            throw ex1;
                        }
                    }
                } else {
                    
                    
                    if (Bucks.DEBUG) {
                        
                        logError(ex);
                    }
                    if (Bucks._isOnError) {
                        Bucks._onError(ex, this);
                    } else {
                        throw ex;
                    }

                }
            } finally {

                try {
                    dispose.call(this); 
                } catch (ex1) {
                    if (Bucks._isOnError) {
                        Bucks._onError(ex1, this);
                    } else {
                        throw ex1;
                    }
                }

                
                

                delete this._alive;
                delete Bucks.running[this.__id];
                delete Bucks.living[this.__id];
                delete this.__id;
            }
            return this;
        }
function destroy ( err ) { if ( ! this . _alive ) { return this ; } var ress = this . _results ; var callback = this . callback ; var failure = this . failure ; var dispose = this . dispose ; this . _tasks = null ; this . _taskcount = 0 ; this . _results = null ; this . callback = none ; this . failure = none ; this . dispose = none ; // @TODO: Change where to run to finally. //dispose.call(this); // run the "dispose()" ress . shift ( ) ; // remove null-result created on first iterate try { if ( callback ) { callback ( err , ress ) ; } else if ( err ) { // if err and no callback, // throw to exec failure callback throw err ; } } catch ( ex ) { if ( failure ) { try { failure ( ex ) ; } catch ( ex1 ) { if ( Bucks . _isOnError ) { Bucks . _onError ( ex1 , this ) ; } else { throw ex1 ; } } } else { // if err and no failure callback // throw it if ( Bucks . DEBUG ) { // if DEBUG, logging logError ( ex ) ; } if ( Bucks . _isOnError ) { Bucks . _onError ( ex , this ) ; } else { throw ex ; } } } finally { try { dispose . call ( this ) ; // run the "dispose()" } catch ( ex1 ) { if ( Bucks . _isOnError ) { Bucks . _onError ( ex1 , this ) ; } else { throw ex1 ; } } // @TODO: excluded from the deleted // delete this._interrupt; delete this . _alive ; delete Bucks . running [ this . __id ] ; delete Bucks . living [ this . __id ] ; delete this . __id ; } return this ; }
このオブジェクトを破棄して
最終コールバックをコールします
@memberof Bucks
@instance
@private
@param {Error} [err] エラーがあれば渡す
@return {Bucks}
このオブジェクトを破棄して 最終コールバックをコールします