code: function end(callback, errback) {
              if (callback && callback.length < 1) {
                  // if callback specified, it should be `callback(err, ress)`.
                  // errが無視されると発生したエラーがどこにも出ずにデバッグが難しくなるので
                  // callbackには引数を1つ以上指定することを強制しています
                  throw new Error('callback args length invalid. should be `callback(err, ress)` or `callback(err)`.');
              }
  
              var self = this;
  
              this.callback = callback;
              this.failure  = errback;
  
              if (!this._tasks || !this._tasks.length) {
                  var err = new Error('task is empty. add(task) first. if theres no task to execute but end is desired, empty() may be useful');
                  this.destroy(err, null);
                  return callback(err);
              }
  
              // add as running
              Bucks.running[this.__id] = this;
  
              this._iterator(); //execute
  
              return undefined;
          }
docs: チェインを完了し実行を開始します
  @memberof Bucks
  @instance
  @param {function} [callback] 最終コールバック関数 ressは各チェインの実行結果の配列 ex) callback(err, res)
  @param {function} [errback] callbackでエラーが発生した場合のハンドラ ex) errback(err)