Использование общей переменной в Node.js Nimble flow.parallel control

У меня есть следующий код:

var flow = require('nimble');

exports.execute = function(data, estrategias, callback) {

    var estrategiaList = [];
    var resultList = [];

    for (var i in estrategias)
    {
            var estrategia = (function(item) {

                    return function(callbackFlow) {

                            // Cria uma nova instancia do indicador
                            var indicador = loadIndicador(item);

                            // Executa indicador
                            indicador.execute(item, data.fechamento, function(result) {
                                    resultList.push(result);
                            });

                            callbackFlow();
                    }

            })(estrategias[i]);

            estrategiaList.push(estrategia);
    }

    flow.parallel(estrategiaList, function() {
            callback(resultList);
    });
};

Почему-то на последнем обратном вызове flow.parallel callback(resultList) Я получаю пустой список результатов.

Я проверил это resultList.push(result) успешно добавить результат в массив resultList.

Я думаю, что проблема в какой-то маленькой детали, которую я не мог понять.

Кто-нибудь может мне помочь?

С уважением. Клейсон Риос.

1 ответ

Решение

Я понял проблему. callbackFlow() казнили раньше, чем resultList.push()так что пришлось поставить callbackFlow() Внутри indicador.execute как:

indicador.execute(item, data.fechamento, function(result) {
    resultList.push(result);
    callbackFlow();
});
Другие вопросы по тегам