return function () { var ret = new comb.Promise(); var funcRet = new comb.Promise(); var isCallback = false; var ignoreProcessError = it.ignoreProcessError === true; var errorHandler = function (err) { if (!isCallback) { isCallback = true; ret.errback(err); } }; if (ignoreProcessError === false) { process.on("uncaughtException", errorHandler); } try { var classicNext = function (err) { if (!isCallback) { if (err) { ret.errback(err); } else { ret.callback(); } isCallback = true; } }; var l = cb.length; var response = cb.bind(funcRet)(classicNext, funcRet); if (comb.isPromiseLike(response)) { response.then(funcRet); } else if (comb.isDefined(response) || l == 0) { if (!isCallback) { ret.callback(); isCallback = true; } } funcRet.then(function () { if (!isCallback) { ret.callback(); isCallback = true; } }, function (err) { if (!isCallback) { ret.errback(err); isCallback = true; } }); } catch (err) { if (!isCallback) { ret.errback(err); isCallback = true; } } ret.both(function () { if (ignoreProcessError === false) { process.removeListener("uncaughtException", errorHandler); } }); return ret; };
setUpCb(cb, this)().classic(function (err) { var end = new Date(); var sum = {description:description, start:start, end:end, duration:end - start, status:err ? "failed" : "passed", error:err || false}; summaries[description] = sum; if (err) { var formatErr = formatter.printError(sum, level, err); if (comb.isDefined(formatErr)) { sum.status = formatErr === false ? "passed" : "failed"; sum.error = formatErr === false ? false : err; } } else { formatter.printSuccess(sum, level); } ret[err && stopOnError ? "errback" : "callback"](summaries); });
constructor : function (options) { options = options || {}; var amqpOptions = this._amqpOptions = {}, sendJson = options.sendJson; this._queue = []; this.sendJson = comb.isBoolean(sendJson) ? sendJson : true; if (comb.isDefined(options.address)) { amqpOptions.url = options.address; } else { ["host", "port", "login", "password","vhost", "defaultExchangeName"].forEach(function (option) { var opt = options[option]; if (opt) { amqpOptions[option] = opt; } }); } !options.name && (options.name = "amqpAppender"); var queueName = this.queueName = options.queueName; if(!queueName){ throw new Error("queueName must be defined"); } comb.listenForExit(this.__onExit.bind(this)); this._super([options]); },