Я изучаю электрон. js и я хочу использовать функцию aync / await в своем коде, но я немного нахожусь, потому что синтаксические ошибки проглатываются и молчат, что делает мои будущие проекты кошмаром для отладки.
модуль дБ:
exports.connect = function(){
return new Promise( (resolve, reject) => {
connection = mysql.createConnection({
host : host,
port : port,
user : user,
password : null, // or the original password : 'apaswword'
database : database
});
query = util.promisify(connection.query).bind(connection);
connection.connect(function(error) {
// in case of error
if(error){
reject(error);
}
resolve(true);
});
connection.on('error', error => {
dispatcher.send('connection-error', error.code);
});
});
}
bootstrap модуль:
async function connectDB(){
try{
let connected = await db.connect(THIS_SHOULD_THROW_ERROR);
return connected;
}catch( error ){
dispatcher.send('connection-error', error);
}
}
exports.init = async function( win ){
dispatcher.init(win);
try{
const connected = await connectDB();
/*if(!connected){
dispatcher.send('fatal-error', "MYSQL NOT CONNECTED");
}*/
}catch( error ){
dispatcher.send('fatal-error', error);
}
}
Этот код пытается подключиться к mysql и отправить ошибку, если не может подключиться, но обратите внимание на синтаксическую ошибку «THIS_SHOULD_THROW_ERROR», которая должна остановить выполнение или выбросить ошибку, но это не так, и мой код вообще не содержит ошибок, даже если он не может подключиться к mysql.
Обратите внимание, что если Я удаляю синтаксическую ошибку, мой код работает хорошо и ловит mysql ошибку соединения.
Я везде читал, что это нормальное поведение javascript асинхронного / обещающего кода, но я хотел бы знать, если есть решение для обнаружения синтаксических ошибок, чтобы облегчить отладку. Спасибо