我想要同步结果。
我只想通过将5000除以1来输入数据。
但是,由于异步上市,它正在挣扎。
我想看看像Java这样的同步语言的结果。
来自同步问题node.js
我想这些结果:
100-elements
commit
100-elements
commit
100-elements
commit
100-elements
commit
但是,代码目前得到以下结果:
100-elements
100-elements
100-elements
100-elements
100-elements
.
.
.
.
100-elements
commit
commit
commit
commit
commit
commit
commit
.
.
.
.
commit
我怎样才能得到这些结果?请帮帮我。谢谢。
mysql.getConnection(function(err, connection){
if(err){ connection.release(); return; }
var array = [];
var count = 300000;
var length = count;
for(var i=0; i<count; i++){
(function(currentI, master){
process.nextTick(function(){
array.push([currentI, master]);
if(currentI % 5000 === 0){
console.log('100-elements');
array = [];
connection.beginTransaction(function(err){
if(err){
throw err;
}
var query = "insert into users(username, password) values ?";
connection.query(query, [array], function (err, rows) {
if (!err) {
//commit start
connection.commit(function(){
if (err) {
console.error(err);
connection.rollback(function() {
console.error('rollback error');
throw err;
});
} else {
console.log("Commit");
}//if err
}); //commit end
} else {
console.log(err);
connection.rollback(function(){
throw err;
});
} // if
}) // cnnection query
}); // beginTransaction
} //if
});
}(i, 'master'));
} //for
}) // getConnection
@deathquin - 这是否回答了您的问题? – jfriend00
我没有问题谢谢! – deathquin
@deathquin - 那么StackOverflow中的程序就是如果你得到了一个好的答案,你可以通过检查最佳答案左边的绿色复选标记来接受答案。这会为提供答案的人(作为他们的帮助奖励)和你(在这里遵循一个好的程序)赢得一些声望点。之后(当你赢得更多的声望点时),你可以提出所有帮助你的答案。 – jfriend00