Есть модуль для работы с транзакциями на mysql:
exports.prepareTransaction = () => {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err) throw err;
const query = promisify(connection.query).bind(connection);
const commit = promisify(connection.commit).bind(connection);
const rollback = promisify(connection.rollback).bind(connection);
const beginTransaction = promisify(connection.beginTransaction).bind(connection);
const release = promisify(connection.release).bind(connection);
resolve({beginTransaction, query, commit, rollback, release});
});
});
};
При закрытии соединения:
let transaction = await connection.prepareTransaction();
try {
await transaction.beginTransaction();
...
await transaction.commit();
await transaction.release();
// дальше код не выполняется никакой
}
Никакой код дальше не выполняется, даже нельзя сделать return. Почему так? И как решить проблему?