Created
April 27, 2018 10:28
-
-
Save bluemoon2014/2f2a57574250f8de37bb36c05ac03845 to your computer and use it in GitHub Desktop.
实物
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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