Код без ошибки (работает нормально):
let userInsert = new Promise((resolve, reject) => {
db.query('INSERT INTO users (email, password) VALUES (?, ?)', [user.email, user.password])
});
userInsert
.catch(function (err) {
console.log('error');
});
Код с ошибкой запроса (крашит программу, хотя должен перехватываться в catch):
let userInsert = new Promise((resolve, reject) => {
db.query('INSERT INTO users (email, passwordError) VALUES (?, ?)', [user.email, user.password])
});
userInsert
.catch(function (err) {
console.log('error');
});
Проверяем, перехватывает ли промис шибки. Работает нормально.
let p = new Promise((resolve, reject) => {
// то же что reject(new Error("o_O"))
throw new Error("o_O");
})
p.catch(alert('error'));
Собственно, почему второй код не перехватывает ошибку? А выводит в консоль:
Error: ER_BAD_FIELD_ERROR: Unknown column 'passwordError' in 'field list'