在 Highland.js 中打印 reduce 的结果
Print result from reduce in Highland.js
我写了一个简单的脚本来计算行数
var
H = require('highland'),
fs = require('fs'),
split = require('split');
var lineStream = fs.createReadStream('data-samples/sample.log').pipe(split());
H('data', lineStream).reduce(0, function(count) {
return count + 1;
}).each(console.log);
但由于某些原因,我在控制台中什么也看不到。文档说 lazyness 但 each
调用应该 "invoke" 流。如何解决这个问题?
注意:这是一个关于highland.js的问题,而不是关于计算行数的方法
'reduce' 流仅发出 final value. you should provide _.nil 作为 Highland Stream 的最终值。像这样:
lineStream.on('end', function() { s.write(H.nil) });
还有 Highland.js natively supports Node streams,因此您不需要创建事件流。使用:
H(lineStream)
改为
H('data', lineStream)
我写了一个简单的脚本来计算行数
var
H = require('highland'),
fs = require('fs'),
split = require('split');
var lineStream = fs.createReadStream('data-samples/sample.log').pipe(split());
H('data', lineStream).reduce(0, function(count) {
return count + 1;
}).each(console.log);
但由于某些原因,我在控制台中什么也看不到。文档说 lazyness 但 each
调用应该 "invoke" 流。如何解决这个问题?
注意:这是一个关于highland.js的问题,而不是关于计算行数的方法
'reduce' 流仅发出 final value. you should provide _.nil 作为 Highland Stream 的最终值。像这样:
lineStream.on('end', function() { s.write(H.nil) });
还有 Highland.js natively supports Node streams,因此您不需要创建事件流。使用:
H(lineStream)
改为
H('data', lineStream)