我已经好几天没想办法解决这个问题了。投降了。我在这里做错什么了?如果我使用的事件是"end“事件,而我没有将任何东西写入管道,那么为什么我会得到”写后结束“错误呢?我只是在用后换个东西。或者至少我认为是这样。
var duplexer2 = require("duplexer2");
var through = require('through2');
module.exports = function (counter) {
var countries = {};
var duplex = duplexer2(through.obj(function (obj, encoding, done) {
if (obj.country in countries)
countries[obj.country]++;
else
countries[obj.country] = 1;
done();
}), counter);
duplex.on("finish", function() {
counter.setCounts(countries);
});
counter.pipe(duplex);
return duplex;
};如果我用行counter.setCounts(countries);来代替console.log(countries),我会看到它的填充是正确的。
问题文本:http://pastebin.com/vAM4vKZg
我看过这个练习测试文件,没有任何线索,因为它只是比较对象,看看它们是否正确。
发布于 2015-03-16 21:57:24
你的解决方案几乎是正确的。只要删除counter.pipe(duplex);行,它就能工作了。您不需要将任何信息输送到您创建的双工流,流冒险会这样做,以检查它是否有效:)。
https://stackoverflow.com/questions/29086638
复制相似问题