1
我新的節點,我正在研究有關事件發射器,我創建了一個演示程序節點事件發射
var eventEmitter = new event.EventEmitter();
var fs = require("fs");
var data = '';
var read = fs.createReadStream("demo.txt");
read.setEncoding('UTF8');
read.on('data', function(resp) {
console.log(resp);
});
data='some data';
var writeStream = fs.createWriteStream("demo.txt");
writeStream.write(data,'UTF8');
writeStream.end();
writeStream.on('finish',function(){
console.log("finish");
});
所以輸出「完成」,但如果我寫流之後寫讀流輸出是'完成一些數據',所以爲什麼讀取流如果我先把它寫出來就不會產生輸出。
PS:我已經有了正確提到的,你應該先寫文件的文件
當您初始化讀取流,它立即開始流動。如果該文件在那個時候是空的(或者甚至還不存在),那麼它完成並且沒有任何可讀的。它不會繼續觀察文件並等待更多數據顯示在文件中。它讀取了什麼,然後完成了它。 – jfriend00
但文件在那裏,數據也在那裏,如果我刪除它的寫入流 –
只要流不按預期工作,爲'error'事件添加一個事件處理程序,並看看你得到什麼。 – jfriend00