宣传节点模块上的所有子方法

时间:2017-01-19 05:32:30

标签: node.js bluebird

我尝试Promisify条带模块但遇到了问题。

如果我跑:

const stripe = Promise.promisifyAll(require('stripe')(secretKey));
const response = await stripe.accounts.retrieveAsync();

retrieveAsync不是一个功能。我必须做这样的事情:

const accounts = Promise.promisifyAll(stripe.accounts);
const response = await accounts.retrieveAsync();

但显然这并不能很好地扩展。我怎样才能宣传这个模块的所有子方法?感谢

3 个答案:

答案 0 :(得分:0)

这似乎有效:

let stripe = require('stripe')(secretKey);
Promise.promisifyAll(Object.getPrototypeOf(stripe));

答案 1 :(得分:0)

给它一个机会:

const stripe = Promise.promisifyAll(require('stripe')(secretKey));
const response = yield stripe.accounts.retrieve().promise();

答案 2 :(得分:0)

如果省略回调,看起来条纹v4.25支持Promises。

使用回调:

var stripe = require('stripe')('sk_test_XXX')
stripe.plans.retrieve('number_one_month', (err, res) => console.log(res))
{ id: 'number_one_month', 
...

使用then()

stripe.plans.retrieve('number_one_month').then(console.log)
{ id: 'number_one_month',
...

但我在文档中找不到它。