Exemple #1
0
    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;
    };
Exemple #2
0
 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]);
 },