将Highland与node-client结合使用

时间:2015-10-13 10:58:31

标签: highland.js heroku-api

我尝试将highlandheroku-client结合使用。但是在heroku客户端内部它使用this,即使我尝试bind绑定它,该函数给出了错误消息,其中有一个对this的拒绝我是无法让它工作。

没有代码看起来像这个

const Heroku = require('heroku-client');
const hl = require('highland');
var hk = new Heroku({
  token: process.env.HEROKU_API_TOKEN
});
var list = hl.wrapCallback(hk.apps().list.bind(hk));
list().toArray((a) => 'console.log(a)')

因此,此代码段失败,并显示以下错误消息:

...node_modules/heroku-client/lib/resourceBuilder.js:35
if (this.params.length !== pathParams.length) {
               ^

TypeError: Cannot read property 'length' of undefined

1 个答案:

答案 0 :(得分:1)

哟! : - )

您绑定到hk而不是hk.apps()返回的内容,这是list函数所依赖的内容(它是hk.apps()返回的成员)

试试这个:

const Heroku = require('heroku-client');
const hl = require('highland');
const hk = new Heroku({
  token: process.env.HEROKU_API_TOKEN
});
const hkApps = hk.apps();
const list = hl.wrapCallback(hkApps.list.bind(hkApps));
list().toArray((a) => 'console.log(a)')