Функция обработчика
не должна быть асинхронной, пока вы нигде не используете await. если ты вернешь обещание, оно все равно будет асинхронным. Я не уверен, как точно выглядит fetchLink
обещание, но здесь оно ничего не разрешает / отклоняет, поэтому функция, вероятно, завершается по таймауту. meaby вам нужно исправить это следующим образом
let fetchLink = new Promise((resolve, reject) => {
pool.getConnection((err, connection) => { // Connection with the database
if(err) reject(err);
resolve(connection);
});
});
также, если вы хотите быть уверены, что функция обработчика завершается с освобождением соединения и завершением пула, лучше возвращать обещания также после анализа и перехвата ошибок. *
если функции connection.release()
и pool.end()
являются обещаниями или имеют обратные вызовы, их также следует связать в Promise и ожидать в этом случае.