Ваш код создания обещания неверен, так как он никогда не разрешается. Что вы на самом деле должны делать, так это запускать resolve
функции внутри вашего кода на основе обратного вызова. Я бы пошел немного дальше - и разрешил бы все эти обещания с их результатами вместо того, чтобы изменять какое-то внешнее значение. Как это:
const promises = [
new Promise( (resolve, reject) => {
var query = `...`;
mssql.query(query, function(obj){
resolve({key1:obj.recordset});
});
}),
new Promise( (resolve, reject) => {
var query = `...`;
mssql.query(query, function(obj){
resolve({key2:obj.recordset});
});
}) // ...
];
Promise.all(promises).then(results => {
res.send(Object.assign({}, ...results));
});
В зависимости от того, как построены запросы, вы можете пойти еще дальше - и написать общую функцию генератора запросов, которая принимает запрос и ключ в качестве параметров и возвращает обещание. Опять же, эта функция должна легко тестироваться.
Как примечание, ваш код чрезмерно оптимистичен, он также должен обеспечивать error
обратных вызовов с reject()
вызовом для каждого запроса.