重用写入流而不结束它并一遍又一遍地声明新流
Reuse the write stream without ending it and declaring new stream over and over again
这个函数在另一个设置 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)
如何在不结束此流的情况下继续重复使用它?
更新
正如评论部分指出的那样,有一个进程明确结束了这个流。
我运行一个child_process.spawn方法就可以了
SomeSpawn.stdout.pipe( wStream );
它为什么以及如何负责关闭此流?我怎样才能阻止它明确关闭它?
类似于 {end:false}
?
child_process.spawn
returns a ChildProcess object. This process has its own stdout
,这是一个 ReadableStream。一个 ReadableStream,当通过管道传输到一个可写流时,当它完成读取时,在这个可写流上调用 end()
。
如果你不想让可读流最后自动关闭目标流,只需将选项{ end: false }
传递给pipe
,如:
SomeSpawn.stdout.pipe( wStream, { end: false } );
在这种情况下,您以后需要手动关闭它。
这个函数在另一个设置 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)
如何在不结束此流的情况下继续重复使用它?
更新 正如评论部分指出的那样,有一个进程明确结束了这个流。
我运行一个child_process.spawn方法就可以了
SomeSpawn.stdout.pipe( wStream );
它为什么以及如何负责关闭此流?我怎样才能阻止它明确关闭它?
类似于 {end:false}
?
child_process.spawn
returns a ChildProcess object. This process has its own stdout
,这是一个 ReadableStream。一个 ReadableStream,当通过管道传输到一个可写流时,当它完成读取时,在这个可写流上调用 end()
。
如果你不想让可读流最后自动关闭目标流,只需将选项{ end: false }
传递给pipe
,如:
SomeSpawn.stdout.pipe( wStream, { end: false } );
在这种情况下,您以后需要手动关闭它。