{ v-6ren">
gpt4 book ai didi

arrays - 如何遍历数组并根据 PostgreSQL 查询的结果构造对象

转载 作者:行者123 更新时间:2023-11-29 12:48:38 26 4
gpt4 key购买 nike

这是我的问题:

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 循环不会等待 promise 直到它们被解决,这就是为什么

console.log(jOut);

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

改为使用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);


关于arrays - 如何遍历数组并根据 PostgreSQL 查询的结果构造对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com