在打开流之前,需要检查流是否已经打开
var fs=require('fs');
var stream=fs.createWriteStream(filePath, {flags: 'a'});
stream.on('open',function(){
});
答案 0 :(得分:0)
当流打开时,它会发出open
,因为这是异步的,无法告诉它何时会发出,你甚至可以写出类似
var _path = "text.txt";
var stream1 = fs.createWriteStream(_path,{flags:"a"});
var stream2 = fs.createWriteStream(_path,{flags:"a"});
var stream3 = fs.createWriteStream(_path,{flags:"a"});
var streamN = fs.createWriteStream(_path,{flags:"a"});
并且当他们准备就绪时,所有人都会发出open
事件。
如果在发出open时使用console.log
转储其中一个对象,您将看到一个具有许多属性的对象,例如_writableState
,其中保留了写入状态。
一个不太棒的方法就是试试下面的东西
var _path = "text.txt";
var stream = fs.createWriteStream(_path,{flags:"a"});
var stream2 = fs.createWriteStream(_path,{flags:"a"});
var lock = false; // try switching this , when opened and on other events to get the flow.