我试图用nodeJS对postgres调用2个查询。我来到了这段代码。 但是我对此并不满意,似乎做一件简单的事情太复杂了。有没有更简单的方法可以执行我要执行的操作?
基本上,我尝试在控制台上打印“ before 1st”,然后执行select now(),然后打印结果,然后写入“ after 1st”,然后打印“ before 2nd”,然后执行select now(),然后打印结果,然后输入“ 2nd之后”
getConn().
then(async() => {
console.log("before 1st selectNow2")
await selectNow2()
console.log("after 1st selectNow2")
})
.then(async() => {
console.log("before 2nd selectNow2")
await selectNow2()
console.log("after 2nd selectNow2")
})
async function selectNow2() {
await client.query('SELECT NOW()')
.then(res => {
console.log(res.rows[0])
})
.catch(err => {
console.log(err.stack)
})
}
答案 0 :(得分:0)
您无需在await
内的同一语句中使用then()
和selectNow2()
。由于您使用的是await
,因此不会返回promise,这意味着返回的值将没有then()方法。
performQuery().then(() => {
console.log("DONE");
});
async function performQuery(){
await getConn();
console.log("before 1st selectNow2");
await selectNow2();
console.log("after 1st selectNow2");
console.log("before 2nd selectNow2");
await selectNow2();
console.log("after 2nd selectNow2");
}
async function selectNow2) {
try{
await client.query('SELECT NOW()');
console.log(res.rows[0])
}catch(err){
console.log(err.stack)
}
}