docs: function() {
  			try {
  				if (fn) {
  					/**
  					 * Insert a done() or ok() argument to other needed arguments
  					 */
  					syntheticArgs.unshift(function() {
  						/**
  						 * Call the next in queue
  						 */
  						$this.next.apply($this, arguments);
  					});
  					/**
  					 * Call the function finally
  					 */
  					fn.apply(this, syntheticArgs);
  				} else {
  					syntheticArgs = syntheticArgs || [];
  					/**
  					 * If no function passed, call the next in queue
  					 */
  					$this.next.apply(this, syntheticArgs);
  				}
  			} catch(e) {
  				/**
  				 * An error caught is thrown directly to the catch handler, if any
  				 */
  				if (this.onCatch) {
  					this.onCatch(e);
  				} else {
  					throw e;
  				}
  			}
  		}