使用Node.js中的公共变量Nimble flow.parallel控件

Using a common variable in Node.js Nimble flow.parallel control

本文关键字:Nimble 变量 flow parallel 控件 Node js 使用      更新时间:2023-09-26

我有以下代码:

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);
    });
};

由于某种原因,在最后一个流程.并行回调callback(resultList)中,我得到的resultList为空。

我已经检查了resultList.push(result)是否成功地将结果添加到resultList数组中。

我认为问题出在一些我无法理解的小细节上。

有人能帮我吗?

谨致问候。克莱森·里奥斯。

我解决了这个问题。callbackFlow()resultList.push()之前执行,所以我不得不将callbackFlow()放在indicador.execute中,作为:

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