【问题标题】:Using a common variable in Node.js Nimble flow.parallel control在 Node.js Nimble flow.parallel 控制中使用公共变量
【发布时间】:2014-09-23 17:34:42
【问题描述】:

我有以下代码:

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 设为空。

我已经检查了resultList.push(result) 在 resultList 数组中成功添加了结果。

我认为问题在于我无法弄清楚的一些小细节。

有人可以帮我吗?

问候。 克莱森里奥斯。

【问题讨论】:

    标签: javascript node.js flow-control nimble


    【解决方案1】:

    我发现了问题所在。 callbackFlow()resultList.push() 之前被执行,所以我必须将 callbackFlow() 放在 indicador.execute 中:

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

    【讨论】:

      猜你喜欢
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 2014-03-05
      • 2021-12-03
      相关资源
      最近更新 更多