fs.createWriteStream 正在流式传输但不写入

编程入门 行业动态 更新时间:2024-10-04 15:28:18

fs.createWriteStream 正在流式传输<a href=https://www.elefans.com/category/jswz/34/1771089.html style=但不写入"/>

fs.createWriteStream 正在流式传输但不写入

我最近才注意到下面的代码没有做它之前做的事情……实际上是将文件写入磁盘。

const download = async (archive) => {
    const d = await new Promise((resolve) => {      
        const opts = { method: 'GET' };
        const req = https.request(url, opts, (res) => {
            const file = fs.createWriteStream(`path/to/${archive}`);

            res.on('data', (chunk) => {
                    file.write(chunk);
                    //process.stdout.write(chunk);
                })
                .on('end', () => file.end());
    
            resolve(archive);
        });
        
        req.on('error', (error) => console.error(error));
        req.end();
    });
}

文件正在磁盘上创建,但只是

0B
。如果我取消注释
process.stdout.write(chunk)
,它会愉快地将二进制文件的 gobbledegook 吐出到控制台。但实际上没有任何内容写入磁盘。

我哪里搞砸了?或者最近

node
发生了一些变化,悄悄地搞砸了我的代码?很高兴得到任何指导。

回答如下:

感谢@jfriend00 的评论,以下编辑修复了问题

const download = async (archive) => {
    const d = await new Promise((resolve) => {      
        const opts = { method: 'GET' };
        const req = https.request(url, opts, (res) => {
            const file = fs.createWriteStream(`path/to/${archive}`);

            res.on('data', (chunk) => {
                    file.write(chunk);
                })
                .on('end', () => {
                    file.end());
                    // moving resolve() here
                    resolve(archive);
                });
    
            //resolve(archive);
        });
        
        req.on('error', (error) => console.error(error));
        req.end();
    });
}

我本可以发誓原始代码工作正常然后停止工作,但我很高兴我没有发誓

更多推荐

fs.createWriteStream 正在流式传输但不写入

本文发布于:2024-05-31 00:06:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771070.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:但不   流式   fs   createWriteStream

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!