【发布时间】:2017-04-04 08:50:17
【问题描述】:
我正在使用FS#createReadStream 方法读取文件,然后使用#pipe() 方法将其传送到一些可写流。像这样:
const stream = fs.createReadStream(...);
const transformedStream = imgStream.pipe(someTransformer).pipe(anotherTransfomer);
// do something with transformedStream
在#createReadStream() 方法的文档中,我发现it has autoClose 参数默认设置为true。
从另一边,我发现了这个in documentation of #pipe() method:
一个重要的警告是,如果 Readable 流发出错误 在处理过程中,Writable 目标未关闭 自动地。如果发生错误,则需要手动 关闭每个流以防止内存泄漏。
所以我有两个问题:
我应该完全关闭 Node JS 中的可读和可写流吗? (手动,使用
try-finally块)。还是自动关闭流?或者我应该仅在使用
#pipe()方法时才关闭流? (因为#pipe()会导致内存泄漏)
【问题讨论】:
标签: node.js