我想要同步結果。
我只想通過將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