自动关闭 "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