0

次のコードがあります。

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 配列に結果が正常に追加されたことを確認しました。

問題は、私が理解できなかった小さな詳細だと思います。

誰かが私を助けることができますか?

よろしく。クレイソン・リオス

4

1 に答える 1

0

私は問題を理解しました。callbackFlow()よりも前に実行されていたので、 asの中resultList.push()に入れなければなりませんでした:callbackFlow()indicador.execute

indicador.execute(item, data.fechamento, function(result) {
    resultList.push(result);
    callbackFlow();
});
于 2014-09-24T17:44:04.237 に答える