lib/core/utils/queue.js
function(fn) {
				funcGuard(fn);
				if (completeQueue !== noop) {
					throw new Error('queue `then` already set');
				}
				if (!err) {
					completeQueue = fn;
					if (!remaining) {
						complete = true;
						completeQueue(tasks);
					}
				}
				return q;
			}
function(fn) {
				funcGuard(fn);
				if (completeQueue !== noop) {
					throw new Error('queue `then` already set');
				}
				if (!err) {
					completeQueue = fn;
					if (!remaining) {
						complete = true;
						completeQueue(tasks);
					}
				}
				return q;
			}
function ( fn ) { funcGuard ( fn ) ; if ( completeQueue !== noop ) { throw new Error ( 'queue `then` already set' ) ; } if ( ! err ) { completeQueue = fn ; if ( ! remaining ) { complete = true ; completeQueue ( tasks ) ; } } return q ; }
The callback to execute once all "deferred" functions have completed.  Will only be invoked once.
@param  {Function} f The callback, receives an array of the return/callbacked
values of each of the "deferred" functions
The callback to execute once all deferred functions have completed . Will only be invoked once .