Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2018, 15:26
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Вывод двух обещаний 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. Как получить их оба?
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2018, 15:35
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Может как-то так (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();
    }
};
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2018, 15:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Artur_Hopf,
Щито? Return - это всё, конец. После return жизни нет.
Если нужно вернуть несколько значений - возвращайте массив.
return [result1, result2];
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2018, 15:41
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Nexus,
Спасибо, но не то
Aetae,
Ну да, спасибо, все просто
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сложение двух чисел и вывод суммы Meattale jQuery 3 11.07.2016 14:31
Вывод полей из БД MS SQL Mansitto ExtJS 9 14.06.2016 15:27
Вывод в во внещнюю форму поля из SQL Mansitto Серверные языки и технологии 6 08.06.2016 12:50
складывае двух чисел и вывод их в html rusVolk Мобильный JavaScript 11 14.01.2016 21:31
Прошу раскритиковать наслойку работы с MySql. Alasdair Node.JS 4 21.11.2015 20:06