Вывод двух обещаний 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, время: 02:11. |