(node | io).jsのStreamについて
jsのStreamについて勉強しています。
readableイベントについて勉強するために
下記のコードを書いたのですが、うまく動きません。
helloworld.txtの内容をconsoleに表示 -> MyPushを付け加える -> process.stdout
(標準出力)に送る
ということがしたいのですが、どうやら、process.stdoutにnullが送られているようです。
どうすればいいのでしょうか?
ちなみに iojs --harmony_arrow_functions
で動かしています。
var Transform = require("stream").Transform;
var util = require("util");
var fs = require("fs");
var StringDecoder = require("string_decoder").StringDecoder;
var process = require("process");
util.inherits(MyStream, Transform);
function MyStream() {
Transform.call(this);
}
MyStream.prototype._transform = (chunk, encoding, callback) => {
var data = chunk;
var utf8decoder = new StringDecoder("utf8");
var decoded_data = utf8decoder.write(data);
var send_data = decoded_data + "MyPush\n";
this.push(send_data);
callback();
}
var readable_stream = fs.createReadStream("helloworld.txt");
readable_stream.on("readable", () => {
var chunk = readable_stream.read();
console.log("Data", chunk);
});
readable_stream.on("end", () => {
console.log("end");
});
var mystream = new MyStream();
mystream.on("readable", () => {
var chunk = mystream.read();
mystream.write(chunk);
})
readable_stream.pipe(mystream).pipe(process.stdout);