从for循环内的回调将数据推送到异步块外部的数组

时间:2019-07-10 12:01:29

标签: javascript arrays node.js

这是代码段。 最后,我得到一个空数组。请注意,我是JavaScript新手。

Pool是使用 node-postgres 软件包

连接到PostgreSQL数据库的连接
function execute_query(pool) {
  return new Promise(function(resolve, reject) {
    let column_names = ["column1", "column2", "column3"];
    let array = [];
    for (column_name of column_names) {
      query =
        "SELECT uniqueid FROM table1 ORDER BY " + column_name + " DESC LIMIT 1";

      const sql = {
        text: query,
        rowMode: "array",
      };
      pool.query(sql, (err, result) => {
        if (err) {
          return console.error("Error executing query", err.stack);
        } else {
          if (result.rows.length > 0) {
            array.push(result.rows[0][0]);
          }
        }
      });
    }
    resolve(array);
  });
}

我真正想要的是从查询中附加三个结果的数组。如您所见,我正在推送 array result.rows [0] [0]

我也知道这是异步性的问题,但仍然无法解决。

0 个答案:

没有答案