Node.js 使用蓝鸟承诺承诺gcloud

Node.js 使用蓝鸟承诺承诺gcloud,node.js,google-app-engine,promise,bluebird,es6-promise,Node.js,Google App Engine,Promise,Bluebird,Es6 Promise,我想在gcloud包中推广所有的方法,但是我在这样做时出错了 const Promise = require('bluebird'); const gcloud = Promise.promisifyAll(require('gcloud')); //no problem when passing a callback into it bucket.getFiles((err, files) => { console.log(files) }) //Complain error

我想在gcloud包中推广所有的方法,但是我在这样做时出错了

const Promise = require('bluebird');
const gcloud = Promise.promisifyAll(require('gcloud'));

//no problem when passing a callback into it
bucket.getFiles((err, files) => {
    console.log(files)
})

//Complain error -> bucket.getFilesAsync is not a function
bucket.getFilesAsync().then((files) => {
    console.log(files)
})
当我在
promisifyAll
之后调用
async
方法时,它会抱怨
bucket.getfileasync不是一个函数
,因此我尝试使用ES6承诺来提示该方法

const bucketFiles = new Promise((resolve, reject) => {
    bucket.getFiles((err, files) => {
        if (err) return reject(err);

        resolve(files);
    });
});

bucketFiles.then((files) => {
    console.log(files)
})
这种使用ES6方法的Promission是有效的,但我不想通过这样做来保证每种方法。所以,我想让
蓝鸟
为我承诺一切

我可以知道如何使用bluebird发布gcloud软件包吗?

根据以下文档:

通过检查对象的属性来显示整个对象 以及为对象上的每个函数创建异步等效项 它的原型链

所以,你可以使用promisify
gcloud
object,它与promisify bucket无关,因为它是另一个类

您可以为Bucket的每个实例执行此操作

Promise.promisifyAll(bucket);
或一次修补Bucket原型以供应用

Promise.promisifyAll(require('gcloud/lib/storage/bucket').prototype);
根据以下文件:

通过检查对象的属性来显示整个对象 以及为对象上的每个函数创建异步等效项 它的原型链

所以,你可以使用promisify
gcloud
object,它与promisify bucket无关,因为它是另一个类

您可以为Bucket的每个实例执行此操作

Promise.promisifyAll(bucket);
或一次修补Bucket原型以供应用

Promise.promisifyAll(require('gcloud/lib/storage/bucket').prototype);

它是什么?
bucket
?它是一个对象,您可能需要
承诺。promisifyAll(bucket)
可能是
promisifyAll(require('gcloud/lib/storage/bucket').prototype)
?当您调用
promisifyAll.promisifyAll(bucket)时,它正在工作
,我可以知道为什么这是有效的,但不是promisifyAll(require('gcloud'))它是什么
bucket
?它是一个对象,您可能需要
promisifyAll(bucket)
可能是
promisifyAll(require('gcloud/lib/storage/bucket').prototype)
?当您调用
promisifyAll.promisifyAll(bucket)时,它正在工作
,我可以知道为什么这是有效的,但不是promisifyAll(require('gcloud')