【问题标题】:Auto close of "fs.createWriteStream()" to avoid potential memory leak自动关闭“fs.createWriteStream()”以避免潜在的内存泄漏
【发布时间】:2020-06-22 15:50:35
【问题描述】:

要在本地上传文件,我使用以下代码:

import {pipeline} from "stream";
import {promisify} from "util";

const asyncPipeline = promisify(pipeline);

await asyncPipeline(
    fileData.fileStream,
    fs.createWriteStream(
        path.join(assetsPath, fileName),
        {

            flags: "wx"
        }
    )
);

它可以工作,但我不确定我是否需要做一些额外的事情,例如手动关闭流,或者默认的true-value autoClose 会自动为我做这件事?

如何确保WriteStream 已关闭?

【问题讨论】:

    标签: javascript node.js file-io memory-leaks fs


    【解决方案1】:

    你说得对,管道选项autoClose 的默认值true 将处理流的关闭。无论管道失败还是成功,您都可以放心,文件描述符会自动关闭。

    有关选项和错误处理的更多信息,请参阅pipeline documentation

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多