读了一下午源代码,作者写的代码太难懂了,洋洋洒洒,勉强看懂。
ReadStream有两个模式,即flow模式和readable模式,一旦设定成一种模式,最好不要切换成另一种。
flow模式采用好处是可以控制速度,常见用法为
readable.on("data",function(data){
var ret = writable.write(data);
if(!ret){
readable.pause();//暂停stream,将readable.flow=false
writable.once('drain',function(){
readable.resume(); //让readble继续干活。resume其实就是把readable.flow设置成true,然后调用后文所说的flow()方法。
});
}
});
readable.on("end",function());//do whatever you want
而readable模式则需要查看read方法的返回值,read()返回null,整个读取即告结束
readable.on("readable",function()){
var ret = null;
while((ret = readable.read()) != null){
}
}
readable.on("end",function(){
console.log("end");
});