Первой проблемой является то, что .toCallback теряет свои конкурсы, поэтому this
больше не является потоком, и поэтому this.consume
не является функцией.
Способ облегчения решения состоит в том, чтобы обернуть его функцией стрелки.
cb => H([1, 2, 3]).toCallback(cb)
Во-вторых, вы не можете использовать toCallback с парами, излучающими несколько значений, потому что это вызовет ошибку. (Пожалуйста, проверьте the docs)
Чтобы исправить это можно было бы назвать .collect()
так:
const Promise = require('bluebird');
const H = require('highland');
const assert = require('assert');
Promise.fromCallback(
\t cb => H([1, 2, 3]).collect().toCallback(cb)
).then(function(val) {
\t assert.deepEqual(val, [1, 2, 3]);
\t console.log('All good.');
});
действительно классный ответ, ТНХ! – kharandziuk