作为前提,我对pg-promise,javascript和打字稿完全陌生,所以我的问题很可能是微不足道的。
我正在玩pg-promise,因为我需要从postgresql获取一些数据,并且我需要使用打字稿。
我正在使用预定义的查询运行“ any”方法,该方法封装在包装函数中。从any(..)中,我只返回了Promise对象,该对象我不知道如何使用(甚至不应该使用它)。我可以在控制台中打印结果集,因此我确定它可以连接到数据库。
请保持温柔,这是我在stackOverflow中的第一篇文章
[我在pg-promise页面上尝试了一些示例,但是可能我的问题如此琐碎,以至于没有在该站点中征募,或者它是如此简单,以至于不值得解释:-)
function simpleSelect(db: any, query:string){
var ret :any[] = []
return db.any(query, [] )
.then( (data:any) => {
return data
}).finally(db.$pool.end)
```
This is the Promise object i got returned
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined }
您可以尝试
function simpleSelect(db: any, query:string){
var ret :any[] = []
db.any(query, [] )
.then( (data:any) => {
return data
}).finally(db.$pool.end)
一旦解决承诺,就返回数据,而不是返回承诺
正如评论中的,我了解到我根本没有接受诺言的结果。我最终得到了以下功能:
async function simpleSelect(db: any, query:string){
return db.any(query, [] )
.then( (data:any) => {
return data
}).catch((error:any) => {
console.log(error)
})
.finally(db.$pool.end).
then(function(result:any) {
console.log(result)
})
}```
Thanks all for a such rapid answer(especially the creator!)