需要帮助遍历数组并根据PostgreSQL查询的结果构造对象

编程入门 行业动态 更新时间:2024-10-13 08:18:02

需要帮助<a href=https://www.elefans.com/category/jswz/34/1771029.html style=遍历数组并根据PostgreSQL查询的结果构造对象"/>

需要帮助遍历数组并根据PostgreSQL查询的结果构造对象

这是我的问题:

var ps = ["P1", "P2"];
var hs = ["H1", "H2"];

var jOut = {};

hs.forEach(async (h) => {
    var t = `t_${h}`;
    var query = {
        text: `SELECT pName, pPrice FROM ${t} WHERE pName = ANY($1)`,
        values: [ps],
        rowMode: "array"
    };

    var qres = await client.query(query);
    jOut[t] = qres.rows;
});

console.log(jOut);

我希望输出看起来像这样:

{
    t_H1: [ [pName: "P1", pPrice: 0.5], [pName: "P2", pPrice: 1.2] ],
    t_H2: [ [pName: "P1", pPrice: 0.6], [pName: "P2", pPrice: 1.0] ]
}

但是我的输出看起来像这样:

{}

顺便说一下,我是这个网站的新手。如果我在这个问题上做错了什么,请告诉我。

回答如下:[forEach]循环不等待承诺被兑现,这就是为什么

console.log(jOut);

在您的所有/任何承诺都得到解决之前立即执行。

而不是使用for..of循环

for(const h of hs) { var t = `t_${h}`; var query = { text: `SELECT pName, pPrice FROM ${t} WHERE pName = ANY($1)`, values: [ps], rowMode: "array" }; var qres = await client.query(query); jOut[t] = qres.rows; } console.log(jOut);

更多推荐

需要帮助遍历数组并根据PostgreSQL查询的结果构造对象

本文发布于:2024-05-06 22:02:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753896.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:遍历   数组   对象   PostgreSQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!