我使用node-mysql
来保存数据,在获得pool
之后,有一个事件循环在运行,直到pool.end()
被调用。
我循环连接到MySQL,在node-mysql
回调函数中得到结果,我想知道所有连接何时完成,以便我可以pool.end()
。
var mysql = require('mysql');
var pool = mysql.createPool({
host: 'xxxxxx',
user: 'xxxxxx',
password: 'xxxxxx',
database: 'xxxxxx'
});
aArray.forEach(function(u) {
pool.getConnection(function(err, connection) {
if (connection) {
var i = connection.query(aSQL, function(err, rows) {
})
}
connection.release();
})
})
答案 0 :(得分:2)
您可以使用类似async的内容,或只使用简单的计数器变量:
var conns = aArray.length;
aArray.forEach(function(u) {
pool.getConnection(function(err, connection) {
if (connection) {
var i = connection.query(aSQL, function(err, rows) {
if (--conns === 0)
pool.end();
});
} else if (--conns == 0)
pool.end();
connection.release();
});
});