nodejsmysql回调地狱
我在nodejs和mysql中使用了async从数据库中注入数据 所以我无法将mysql结果中的数据传递到mysql端以打印出来 请参阅它所解释的代码nodejsmysql回调地狱,mysql,node.js,asynchronous,callback,Mysql,Node.js,Asynchronous,Callback,我在nodejs和mysql中使用了async从数据库中注入数据 所以我无法将mysql结果中的数据传递到mysql端以打印出来 请参阅它所解释的代码 var users = [] ; .on('result', function(user,callback) { async.waterfall([ function(cb){ get_comm(user.post_id ,function(moredata){ us
var users = [] ;
.on('result', function(user,callback) {
async.waterfall([
function(cb){
get_comm(user.post_id ,function(moredata){
user.moredata = moredata;
users.push(user);
cb(users);
})
},
],function(users , cb){
console.log(users); // it prints out successfully
});
})
.on('end', function() {
if (connectionsArray.length) {
pollingTimer = setTimeout(pollingLoop, POLLING_INTERVAL);
console.log(users); // it prints out empty array [] !!
updateSockets({
users: users // empty array [] !!
});
}
});
我不确定瀑布对您来说是否是最好的功能,如果您确实有一堆用户ID,您还可以使用每个或每个系列 例如:
userIDs = [1,3,42,23];
users = [];
async.each(users, function( user, callback) {
get_comm(user,function(moredata){
user.moredata = moredata;
users.push(user);
callback(users);
})
}
}, function(err){
if( err ) {
console.log(err);
} else {
console.log(users);
}
});
试试看,我不确定这是你想要的,你的问题很难理解
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 []; !!
});
}
});
所以我希望在结果循环中查找后打印出所有数据,但结果循环中的数组已满,并且已清空 我只是想知道如何将回调从async传递到另一个functionReplace console.log,并使用您的函数