在node.js中,如何检查特定的写入流是否被打开

时间:2013-09-19 12:36:37

标签: node.js stream

在打开流之前,需要检查流是否已经打开

var fs=require('fs');
var stream=fs.createWriteStream(filePath, {flags: 'a'});
stream.on('open',function(){


});

1 个答案:

答案 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.