-2
users = [];
.on('result', function(user) {
async.waterfall([
function(cb) {
get_comm(user.post_id, function(comms) {
user.comm = comms;
users.push(user);
cb(users);
})
},
], function(users, cb) {
console.log(users); // it prints out
});
})
.on('end', function() {
if (connectionsArray.length) {
pollingTimer = setTimeout(pollingLoop, POLLING_INTERVAL);
updateSockets({
users: users // empty []; !!
});
}
});
Таким образом, я хочу, чтобы после завершения цикла результата распечатать все данные, но массив заполнен в цикле результатов и пустым из него.Nodejs Callback async
var get_comm = function (post_id, cb) {varcomments = connection.query (..); comments.on ('end', function() { cb (comms);})} users = []; var query = connection.query (...); .on 'результат' (функция (пользователь) { async.waterfall ([ функция (CB) {get_comm (user.post_id, функции (порта связи) { user.comm = порта связи; users.push (пользователь); Cb (пользователей); })} , ], функция (пользователи, Cb) { console.log (пользователи); // он печатает });} ) .На ('end', function() { if (connectionsArray.length) { pollingTimer = setTimeout (pollingLoop, POLLING_INTERVAL); updateSockets ({ use rs: users // empty []; !! }); } }); –
вот полный код проверить @ jfriend00 –