2

ノード ストリーム マネージャーであるhighland.jsのコツを学びます。

かなり基本的なことをしようとしています:

_ = require("highland")

doubled = (x)->
    return x*2

_.map(doubled, [1, 2, 3, 4])

出力が得られない

代わりに実行すると

_ = require("highland")

doubled = (x)->
    return x*2

console.log(_.map(doubled, [1, 2, 3, 4]))

次の出力が得られます。

{ domain: null,
  _events: { newListener: [Function], removeListener: [Function] },
  _maxListeners: 10,
  id: '200471',
  paused: true,
  _incoming: [],
  _outgoing: [],
  _consumers: [],
  _observers: [],
  _send_events: false,
  _send: [Function],
  source:
   { domain: null,
     _events: { newListener: [Function], removeListener: [Function] },
     _maxListeners: 10,
     id: '060326',
     paused: true,
     _incoming: [ 1, 2, 3, 4, {} ],
     _outgoing: [],
     _consumers: [ [Circular] ],
     _observers: [],
     _send_events: false } }

コンテンツを含まないストリームのように見えます。

ここで何が間違っていますか?

4

3 に答える 3

4

mapストリームを別のストリームに変換します。結果を収集するには、orreduceのようなものを使用する必要があります。eachtoArray

ストリームを一時停止することもできます。その場合は、停止するまで出力が生成されませんresume

于 2014-03-06T02:07:37.587 に答える
1

これが私がそれにアプローチする方法です:

_ = require("highland")

doubled = (x)->
    return x*2

_([1, 2, 3, 4]).map(doubled).map(String).pipe(process.stdout)

于 2015-01-10T04:55:53.513 に答える