Когда вы возвращаете articleArray, вы не возвращаете его из функции-исполнителя. Вместо этого вы возвращаете его из обратного вызова, который передается в функцию db.query. Синтаксис () => {}
в основном является сокращением для function() {}
(хотя есть различия, которые выходят за рамки этого ответа).
Возможно, что-то подобное может быть полезно (обратите внимание, что я удалил try catch, поскольку Я считаю, что такое ведение журнала должно выполняться на уровне промежуточного программного обеспечения в express, который, похоже, вы используете):
app.get('/users/article/feed', checkAuthenticated, async (request, response) => {
return new Promise((resolve, reject) => {
let articleArray = []
const sql = "SELECT noOfArticles FROM Articles WHERE id=?"
db.query(sql, [request.user.id], (err, result) => {
if (err) reject(err)
let noOfArticles = result[0].noOfArticles
for (let i = 1; i <= noOfArticles; i++) {
const sql1 = "SELECT ?? FROM Articles WHERE id=?"
let index = 'article' + i
db.query(sql1, [index, request.user.id], (err, result) => {
if (err) reject(err); // reject the promise if there is an error
articleArray.push(result[0][index])
if (articleArray.length === noOfArticles) {
console.log(articleArray);
resolve(articleArray); // resolve the promise with the value we want
}
})
}
})
})
})