我一直在尝试将 bluebird 承诺与 pg 库一起使用,甚至发现了这篇文章,但遗憾的是,我对 StackOverflow 用户太陌生,无法直接在那里发表评论:Manually promisifying pg.connect with Bluebird
简而言之,在剪切和粘贴该代码后,我使用 bluebird Promisfy 函数尝试的所有操作都没有引入任何查询构造函数,也许我在尝试中误用了 ClientAsync 函数,但是我希望这是一个快速简便的帮助,因为我尝试的一切都会导致以下变化:
Possibly unhandled TypeError: Object function (err) {
if(err) {
pool.destroy(client);
} else {
pool.release(client);
}
} has no method 'queryAsync'
我转储了 PromisfyAll 函数结果,并且确实不存在 queryAsync:
相关片段:
Client: { [Function] Query: { [Function] super_: [Object] } },
Query:
{ [Function]
super_: { [Function: EventEmitter] listenerCount: [Function] } },
pools:
{ all: {},
Client: { [Function] Query: [Object] },
getOrCreate: [Function] },
Connection:
{ [Function]
super_: { [Function: EventEmitter] listenerCount: [Function] } },
types:
{ getTypeParser: [Function],
setTypeParser: [Function],
arrayParser: { create: [Function] } },
ClientAsync: { [Function: ClientAsync] __isPromisified__: true },
endAsync: { [Function: endAsync] __isPromisified__: true },
connectAsync: { [Function: connectAsync] __isPromisified__: true },
cancelAsync: { [Function: cancelAsync] __isPromisified__: true },
setMaxListenersAsync: { [Function: setMaxListenersAsync] __isPromisified__: true },
emitAsync: { [Function: emitAsync] __isPromisified__: true },
addListenerAsync: { [Function: addListenerAsync] __isPromisified__: true },
onAsync: { [Function: onAsync] __isPromisified__: true },
onceAsync: { [Function: onceAsync] __isPromisified__: true },
removeListenerAsync: { [Function: removeListenerAsync] __isPromisified__: true },
removeAllListenersAsync: { [Function: removeAllListenersAsync] __isPromisified__: true },
listenersAsync: { [Function: listenersAsync] __isPromisified__: true } }
它在解析中找到相关函数,但不承诺查询:有谁知道我如何进一步解决这个问题或使用 ClientAsync 执行 SQL 查询的潜在语法?我试图从 Bluebird github 页面上的信息中手动添加 pg query.js 文件,但无济于事。