Проблема в том, что connection.query
возвращает undefined
сразу. Ваш catch
не участвует, потому что вызов заканчивается до того, как работа завершена, и вызовет вашу функцию обратного вызова позже. Исключение, которое возникает во время вашего обратного вызова, слишком поздно. Вы пытаетесь / поймать блок уже завершен.
Вы можете использовать promisify
, чтобы подождать на нем, как это:
const util = require("util");
function init() {
const queryPromise = util.promisify(connection.query);
return queryPromise('SOME INSERT QUERY')
.catch(e => {
console.log("It failed", e);
});
}
init().then(result => {
if (result) console.log("It worked", result);
else console.log("Aww, it didn't work");
});