node + mysql 怎么解决数据的异步
发布于 1年前 作者 156032zhang 916 次浏览

pool.getConnection(function(err, connection) { connection.query('SELECT * FROM aaa’, function(err, rows) { connection.query(‘SELECT * FROM b’, function(err, active) {
res.render(‘index’,{’active’ : active,’nav’ : rows}); connection.release(); }); }); });

模板传送数据的时候 我想两个查询数据库单个写 不想这么嵌套,单个写以后 上一个查询的数据就变空了,请问大神们这个怎么解决 嵌套

3 回复

异步嵌套的话为了保证数据的完整性必须写在上层的回调中,如果不像这么做的话可以看看async或者q这两个模块,这两个模块是为了解决异步函数的顺序执行的问题,可以去Git上看看,然后npm下载包就可以了。

async.parallel({ one: function(callback){ setTimeout(function(){ callback(null, 1); }, 200); }, two: function(callback){ setTimeout(function(){ callback(null, 2); }, 100); } }, function(err, results) { // results is now equals to: {one: 1, two: 2} });

强大的async满足你一切需求,哈哈。

回到顶部