我正在使用node.js和node-mysql,我想了解以下内容:
connection.connect(function(err) { if (err) throw err; });
console.log(" beginn insert "+ Date() );
for (var i=0;i<200;i++){
connection.query('INSERT INTO animals SET ?', {name: "tiger!"});
}
connection.end();
console.log(" end insert " + Date() );
输出始终是“beginn insert”,紧接着是“end insert”,然后只有数据库开始工作。这些node-mysql语句怎么可能看起来是非阻塞的?
谢谢,菲利克斯
最佳答案
Node 本身对于 IO 是非阻塞的,因此此类查询不会阻塞。相反,您需要在查询完成时传递回调函数:
var queries = 0;
connection.query("INSERT INTO animals SET ?", {name: "tiger!"},
function (err) {
// handle error?
queries++;
if (queries == 200) {
// Last query has finished running
}
});
关于node.js - Node-mysql 中的阻塞行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652526/