Использование общей переменной в 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();
});