nodejs async无法解决的一个问题

学无止境-逆流而上 2015-06-17 04:10:21
我想把这3个mysql操作用async优化,流程是第一个查询有数据的话,则后面2个不执行,并return数据。

var findUserByUnPwSql = "select * from user where username = '" + username + "'and password ='" + password + "'";
mysqldb.excute(findUserByUnPwSql, function (results) {
if(results.length>0){
return done(null, false, req.flash('signupMessage', '该用户已存在!'));
}else{
var insertUserSql = "insert into user(username,password) values('" + username + "','" + password + "')";
mysqldb.excute(insertUserSql, function (results) {
mysqldb.excute(findUserByUnPwSql, function (results) {
return done(null, results[0]);
});
});
}
});
...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我写出来了,其实想多了,结果直接return就可以,不用考虑怎么怎么存结果集。不过要注意的是,return的时候,要保证async不要再往下执行了,即callback(err); process.nextTick(function() { async.auto({ findUserByUnPwFunc: function (callback) { var findUserByUnPwSql = “select * from user where username = '” + username + “’and password =’” + password + "’"; mysqldb.excute(findUserByUnPwSql, function (results) { callback(null, results); }); }, insertUserFunc: ['findUserByUnPwFunc’, function (callback, results) { var result = results.findUserByUnPwFunc; if (result.length > 0) { callback(“exist user cannot regist!”); return done(null, false, req.flash(‘signupMessage’, ‘该用户已存在!’)); } else { var insertUserSql = “insert into user(username,password) values('” + username + “’,’” + password + "’)"; mysqldb.excute(insertUserSql, function (results) { callback(null, true); }); } }], findUserByUnPwAfterFunc: ['findUserByUnPwFunc’, 'insertUserFunc’, function (callback, results) { console.log(results.insertUserFunc); var findUserByUnPwSql = “select * from user where username = '” + username + “’and password =’” + password + "’"; mysqldb.excute(findUserByUnPwSql, function (results) { callback(null, true); return done(null, results[0]); }); }] }); });
KK3K2005 2015-06-17
  • 打赏
  • 举报
回复
function adduser(username, password, callback){ mysqldb.excute(find, function (results) { if(results.length>0){ callback('该用户已存在'); }else{ mysqldb.excute(insert, function (results) { mysqldb.excute(find, function (results) { callback(result); }); }); } } }

87,886

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧