【发布时间】:2015-11-28 06:21:37
【问题描述】:
这个函数在另一个设置 wStream 写入流的函数中 到 wStream 成功运行一次的文件。
但是运行这个
fs.watch(fname, function watcher (evt, fname) {
if (evt === 'change') {
wStream.write("File " + fname + " changed\n");
} else if (evt === 'rename') {
wStream.write("File " + orig + " renamed\n");
}
产生这个错误
events.js:85
throw er; // Unhandled 'error' event
^
Error: write after end
at writeAfterEnd (_stream_writable.js:167:12)
at WriteStream.Writable.write (_stream_writable.js:214:5)
如何在不结束此流的情况下继续重复使用它?
更新 正如 cmets 部分所指出的,有一个进程显式结束此流。
我在它上面运行一个 child_process.spawn 方法
SomeSpawn.stdout.pipe( wStream );
它为什么以及如何负责关闭此流?我怎样才能阻止它明确关闭它?
类似{end:false}?
【问题讨论】:
-
您可能在可写流上直接或间接调用
end()。您能否发布更多代码,例如您操作wStream的部分? -
@RodrigoMedeiros 很有趣。与 wStream 相关的另一件事是 SomeSpawn.stdout.pipe( wStream );这是一个 child_process.spawn 方法。那如何关闭 wStream?
标签: node.js stream child-process