gpt4 book ai didi

node.js - 无法触发 Node 流的完成事件

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:12 24 4
gpt4 key购买 nike

我试图确定 Node WriteStream 何时完成写入:

var gfs = GFS(db);

var writeStream = gfs.createWriteStream(
{
filename: "thismyfile.txt",
root: "myfiles"
});

writeStream.on("finish", function()
{
console.log("finished");
response.send({ Success: true });
});

writeStream.write("this might work");
writeStream.end();

console.log("end");

在我的控制台中,我看到“结束”,但从未“完成”,并且从未有任何响应。然而,流正在正确写入,并且似乎正在完成(我在数据库中看到已完成的文件)。那甚至还没有开火。我尝试将“这可能有效”移动到对 end() 的调用中并删除 write(),我也尝试将字符串传递到 end() 中。该字符串已写入流,但仍然没有回调。

为什么此事件不会被解雇?

谢谢。

最佳答案

gridfs-stream 模块主要是为 Node 0.8.x 及更低版本设计和编写的,不使用 stream2 风格的方法由 Node >= 0.10.x 中的 require('stream').WritableStream 提供。因此,它不会获得标准化的 finish 事件。由模块实现本身发出 finish 信号,但它显然没有这样做。

关于node.js - 无法触发 Node 流的完成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22977120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com