Вывод двух обещаний ms sql
Добрый день, столкнулся с такой проблемой. Есть функции запроса к таблице:
var data = async function() {
const pool = new sql.ConnectionPool(sql_config);
pool.on('error', err => {
// ... error handler
console.log('sql errors', err);
});
try {
await pool.connect();
let result1 = await pool.request().query('select * from data');
return result1;
// console.log(result1);
let result2 = await pool.request().query('select * from data2');
return result2;
// console.log(result2);
} catch (err) {
return {err: err};
} finally {
pool.close();
}
};
Если я вывожу результат в теле функции в консоль, то выходят оба обещания. Но если я делаю так:
data().then(values => {
console.log(values);
});
То выходит результат только первого обещания result1. Как получить их оба?:-? |
Может как-то так (async/await сами расставьте, я не понимаю принципа их работы)?
var data = async function() {
const pool = new sql.ConnectionPool(sql_config);
pool.on('error', err => {
// ... error handler
console.log('sql errors', err);
});
try {
await pool.connect();
return Promise.all([
pool.request().query('select * from data'),
pool.request().query('select * from data2')
]);
} catch (err) {
return {
err: err
};
} finally {
pool.close();
}
};
|
Artur_Hopf,
Щито? Return - это всё, конец. После return жизни нет. Если нужно вернуть несколько значений - возвращайте массив. return [result1, result2]; |
Nexus,
Спасибо, но не то :yes: Aetae, Ну да, спасибо, все просто :yes: |
| Часовой пояс GMT +3, время: 14:40. |