Node.js 将bluebirdjs与Google云数据存储节点客户端库一起使用

Node.js 将bluebirdjs与Google云数据存储节点客户端库一起使用,node.js,google-cloud-datastore,bluebird,Node.js,Google Cloud Datastore,Bluebird,我遇到了一个奇怪的问题,试图将Bluebird承诺用于谷歌的云客户端库。 在研究了Google的libs之后,我注意到在常用函数中,有一个包含promisify函数的util文件。 我假设这些都是用来承诺数据存储访问功能的,因为它们可以作为承诺使用。 我的问题是因为我正在编写一个基于PubSub触发器执行的googlecloud函数。 在函数末尾,我需要执行callback()函数来“结束”函数 我想在promises上使用Bluebirdfinally()api来确保始终调用回调。但是,当尝试

我遇到了一个奇怪的问题,试图将Bluebird承诺用于谷歌的云客户端库。 在研究了Google的libs之后,我注意到在常用函数中,有一个包含promisify函数的util文件。 我假设这些都是用来承诺数据存储访问功能的,因为它们可以作为承诺使用。 我的问题是因为我正在编写一个基于PubSub触发器执行的googlecloud函数。 在函数末尾,我需要执行
callback()
函数来“结束”函数

我想在promises上使用Bluebird
finally()
api来确保始终调用回调。但是,当尝试访问数据存储时,它返回它自己的承诺类型,而不是蓝鸟承诺,即使我尝试调用:

const Promise=require('bluebird');
const Datastore=Promise.promisifyAll(require(“@googlecloud/Datastore”);
const datastore=Promise.promisifyAll(
数据存储({
projectId:'xxxx'

}));嗯,这有点尴尬。因此,我不会为犯下如此明显的错误承担全部责任,而是将责任归咎于bluebird文档。(不是,完全是我没有正确阅读的错)

无论如何,为了在数据存储中使用bluebird,我只需要在函数调用中附加
Async

函数设置(键){
返回datastore.getAsync(键);
}