自动关闭 "fs.createWriteStream()" 以避免潜在的内存泄漏
Auto close of "fs.createWriteStream()" to avoid potential memory leak
要在本地上传文件,我使用以下代码:
import {pipeline} from "stream";
import {promisify} from "util";
const asyncPipeline = promisify(pipeline);
await asyncPipeline(
fileData.fileStream,
fs.createWriteStream(
path.join(assetsPath, fileName),
{
flags: "wx"
}
)
);
它有效,但我不确定我是否需要做一些额外的事情,例如,手动关闭流,或者 autoClose
的默认 true
-value 为我做这件事自动?
如何确保 WriteStream
已关闭?
您说得对,管道选项 autoClose
的默认值 true
将处理流的关闭。无论管道失败还是成功,您都可以放心,文件描述符会自动关闭。
有关选项和错误处理的详细信息,请参阅 pipeline documentation。
要在本地上传文件,我使用以下代码:
import {pipeline} from "stream";
import {promisify} from "util";
const asyncPipeline = promisify(pipeline);
await asyncPipeline(
fileData.fileStream,
fs.createWriteStream(
path.join(assetsPath, fileName),
{
flags: "wx"
}
)
);
它有效,但我不确定我是否需要做一些额外的事情,例如,手动关闭流,或者 autoClose
的默认 true
-value 为我做这件事自动?
如何确保 WriteStream
已关闭?
您说得对,管道选项 autoClose
的默认值 true
将处理流的关闭。无论管道失败还是成功,您都可以放心,文件描述符会自动关闭。
有关选项和错误处理的详细信息,请参阅 pipeline documentation。