pg-promise;我无法保存结果集,返回的唯一数据是Promise对象

问题描述 投票:0回答:2

作为前提,我对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 }
typescript pg-promise
2个回答
0
投票

您可以尝试

function simpleSelect(db: any, query:string){
    var ret :any[] = []
    db.any(query, [] )
    .then( (data:any) => {  
        return data
    }).finally(db.$pool.end)

一旦解决承诺,就返回数据,而不是返回承诺


0
投票

正如评论中的,我了解到我根本没有接受诺言的结果。我最终得到了以下功能:

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!) 
© www.soinside.com 2019 - 2024. All rights reserved.