如何使用Promise.All在array.map中使用异步/等待模式来使用现有SQL Server池连接

时间:2018-06-23 21:55:59

标签: node.js promise async-await tedious node-mssql

此代码导致“连接尚未打开”。错误。池已连接,可用于我要更新记录的首选位置。

处理完数据后,我得到了一组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);
}

0 个答案:

没有答案