Skip to content

Instantly share code, notes, and snippets.

@bluemoon2014
Created April 27, 2018 10:28
Show Gist options
  • Save bluemoon2014/2f2a57574250f8de37bb36c05ac03845 to your computer and use it in GitHub Desktop.
Save bluemoon2014/2f2a57574250f8de37bb36c05ac03845 to your computer and use it in GitHub Desktop.
实物
MysqlDB.prototype.atomCRUD = function (_sqlOptions) {
var self = this;
if (!self._pool) {
throw new Error("MysqlDB was not initialized");
}
return new Promise(function (resolve, reject) {
self._pool.getConnection(function(err, connection) {
var counter = 0;
if (err) {
reject(err);
}else{
connection.beginTransaction(function(error) {
if (error) {
connection.release();
reject(error);
}else{
var resultsArray = [];
for (var i = 0; i < _sqlOptions.length; i++) {
let index = i;
connection.query(_sqlOptions[i].sql, _sqlOptions[i].sql_param, function(err, results, fields) {
counter ++;
if (err) {
connection.rollback(function (error) {
if (error) {
reject([err,error]);
}else{
err.rowBack = true;
reject(err);
}
});
}else if (counter === _sqlOptions.length){
resultsArray[index] = results;
connection.commit(function (err) {
if (err) {
reject(err);
}else{
resolve(resultsArray);
}
connection.release();
});
}else{
resultsArray[index] = results;
}
});
}
}
});
}
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment