Как использовать существующее соединение с пулом SQL Server, используя шаблоны async / await внутри array.map, используя Promise.All - PullRequest
0 голосов
/ 24 июня 2018

Этот код приводит к «Соединение еще не открыто». ошибка. Пул подключен и доступен для первого выбора, где я получаю записи для обновления.

После обработки моих данных у меня есть массив операторов UPDATE. Затем запускается встроенная асинхронная функция, которая выдает ошибку, указанную выше.

Я также попытался запустить несколько операторов UPDATE с помощью одного запроса. Это приводит к ошибке UNKNOWN, если в массиве запросов не содержится только один элемент массива.

Это работает на SQL Server 2000.

const doQuery = async (pool, sqlStr) => {
    return await pool.request().query(sqlStr);
};

const updateResidental = async args => {
    let toUpdateSql = `SELECT * FROM blah WHERE blah=blah)`;
    const toUpdate = (await doQuery(args.pool, toUpdateSql)).recordset;

    const sqlStrings = ['UPDATE blah1;','UPDATE blah2;','UPDATE blah3;'];

    (async pool => {
        return await Promise.all(sqlStrings.map(async sqlStr => {
            return await doQuery(pool, sqlStr);
        })).then(results => {
            console.log(results);
        }).catch(err => {
            console.log(err)
        });
    })(args.pool);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...